Drupal 7 を使用したポータルの構築

デベロッパー コミュニティとのコミュニケーションで、ソーシャル公開機能を持つデベロッパー ポータルが利用されるケースが増えています。たとえば、API ドキュメント、使用条件などの静的なコンテンツや、ブログやフォーラムなどの動的なコミュニティの投稿コンテンツのやり取りに利用されます。

API の公開、API に関するデベロッパー トレーニング、デベロッパーのサインアップ、デベロッパーによるアプリ登録のために、API プロバイダには、これらに対応した機能が必要になります。実際に動的コミュニティを構築する場合、デベロッパーに対する API の公開は、最初の一歩にすぎません。これ以降、デベロッパー コミュニティには、フィードバックの提供、サポートや機能のリクエスト作成、他のデベロッパーがアクセスできる独自コンテンツの送信など、さまざまな機能が必要になります。

これらのすべてのサービスを開発コミュニティに提供するため、Apigee Edge は、カスタマイズされた独自のウェブサイトを構築、公開できる Developer Services ポータルを提供しています。Edge のすべてのお客様は、クラウドまたはオンプレミスで独自のデベロッパー ポータルを作成できます。

次の動画では、Apigee Developer Services ポータルを紹介しています。

次の図に、デフォルトのデベロッパー ポータルのホームページを示します。

デフォルトのデベロッパー ポータルのホームページ

デベロッパー ポータルは、オープンソースの Drupal(http://www.drupal.org)プロジェクトをベースにしたコンテンツ管理システム(CMS)です。Drupal は、モジュール形式で機能のコアセットを提供しており、ウェブサイトのコンテンツ作成に加えて、管理も簡単に行えます。

デベロッパー ポータルでは、デフォルトのままで、API ドキュメントの作成、ブログのサポート、スレッド化されたフォーラムなどを始められます。また、デベロッパー ポータルをカスタマイズして特定の要件に対応することも可能です。カスタマイズでは、ポータルの外観やデベロッパーがポータルを操作する方法を変更できます。

ほとんどのカスタマイズは、Drupal メニューを使用して行います。管理者権限を持つユーザーとしてポータルにログインすると、Drupal メニューがすべてのポータルページの上部に表示されます。

ログイン時にポータルの上部に表示される Drupal メニュー。

管理機能では、ポータルへのアクセス権をデベロッパーが要求する手順、API にアクセスするアプリをデベロッパーが登録する方法、特定のロールと API に関連する権限をデベロッパーに割り当てる方法、API へのデベロッパーのアクセス権を取り消すタイミングなどを管理します。

またデベロッパー ポータルを使用して、収益化の構成と管理を行います。収益化を行うと、デベロッパーは、デベロッパー ポータルを通じて [Billing & Reports]、[Catalog & Plans]、および収益化固有の設定に自らアクセスできるようになります。

ポータル ユーザーのタイプ

次の図に 2 種類のポータル ユーザーを示します。

2 種類のポータル ユーザー: デベロッパーとチーム。実行できるタスクの詳細については、以下に示して説明します。

  • デベロッパーは、API を使用してアプリケーションを構築するユーザーのコミュニティを形成します。SmartDocs を使用した API の学習、ポータルでのアカウント登録、API を使用するアプリの登録、デベロッパー コミュニティとの情報交換、アプリの使用状況についてダッシュボードで統計情報を確認するなど、アプリのデベロッパーは、これらの操作をポータルで行います。
  • API チームとは、ポータル コンテンツを作成する API プロバイダのことです。このチームは、アプリのデベロッパーが API を使用できるようにします。API のドキュメントの提供も行います。また、デベロッパーにアプリの登録や API キー取得のメカニズムを提供します。API チームは、次のようなデベロッパー ポータルの基本的な構成を行います。
    • API キーの自動リクエストまたは手動リクエストの構成
    • API ドキュメント、フォーラム、ブログの保守。およびすべての変更の任意のリビジョン管理
    • ユーザー コメントの処理とフォーラムのモデレート
    • ポータル上で機能へのアクセスを制御する Role Based Access Control(RBAC)の適用。たとえば、管理者は特定の制御を有効にして、フォーラムの投稿作成やテスト コンソールの使用を登録ユーザーに許可できます。
    • ユーザーの作成と承認のために管理者とデベロッパーの両方に送信するメール通知のカスタマイズ
    • [contact us] ページなど、ウェブフォームのカスタマイズ

この図には、ポータル ユーザーの 3 番目のタイプである API プロダクト マネージャーは示されていません。次の操作を含めて、API プロダクト マネージャーは、API チームがポータルを構築する方法を定義する責任を負っています。

  • API をプロダクトにパッケージ化する方法の定義
  • アプリケーション承認ルールの定義
  • API プロダクトの料金と課金プランの定義(ポータルで Monetization を有効にしている場合)。Monetization の詳細については、Monetization の概要をご覧ください。

デベロッパー ポータルのカスタマイズ

API プロバイダは、デベロッパー ポータルをカスタマイズして API 用に最適化する方法、API の使用について必要な情報をデベロッパー コミュニティに提供する方法を検討します。カスタム ポータルには、次のようにいくつかの考慮事項があります。

  • API への簡単なアクセス
  • 操作方法ガイド、リファレンス ドキュメントなどのドキュメント
  • ブログやディスカッション フォーラムなど、コミュニティ投稿型のコンテンツ
  • サンプルコード
  • 新しいデベロッパー、アプリケーション、API を短時間で承認できる簡単なサインアップ プロセス
  • 管理された権限と認証情報
  • 階層化されたアクセス制御
  • 組織にふさわしい外観

ポータルは、基本的な構成で定義済みの状態で提供されます。たとえば、デフォルトのままのポータルは、だれでもデベロッパーとして登録できる構成になっていますが、デベロッパーがポータルにログインするには、管理者が登録を承認する必要があります。登録の承認後、デベロッパーはアプリケーションを登録して API キーを要求し、ポータルを使用して API リソースにアクセスできます。

デフォルトの登録プロセスの手順:

  1. デベロッパーは、デベロッパー ポータルを通じて登録します。レスポンスでポータルは、アカウント承認のためのメールを管理者に送信します。
  2. 管理者がアカウントを承認し、メールがデベロッパーに送信されて、デベロッパーはログイン可能になったことを通知されます。
  3. デベロッパーはアプリを登録して、アプリで使用する API プロダクトを選択します。レスポンスでポータルは、一意の API キーをアプリに割り当てます。
  4. デベロッパーは、API へのリクエストを作成するときにこの API キーを渡します。

このデフォルトの操作環境は、詳細にカスタマイズできます。たとえば、登録後に新しいデベロッパーが自動的に承認され、ログインされるように、デフォルトの登録 / 認可スキームを上書きできます。初回ログイン時に、あらかじめ使用条件に同意するようにデベロッパーに要求することも可能です。

またデベロッパー ポータルで使用を許可するコンテンツも詳細に制御できます。デフォルトのデベロッパー ポータルには、API ドキュメント、ブログの投稿、フォーラム ディスカッションなど、サンプル コンテンツが表示されます。独自のコンテンツを提供して、各コンテンツ タイプの外観をカスタマイズできます。

詳細については、外観のカスタマイズをご覧ください。

デベロッパー ポータルの管理

デベロッパーは、API へのアクセスと使用にデベロッパー ポータルを使用します。管理者は、次のようなアカウント管理タスクを実行します。

  • 登録項目、組み込みの Captcha、自動または手動の承認など、デベロッパー登録プロセスのカスタマイズ
  • デベロッパーの追加または承認。デフォルトでは、すべてのデベロッパーはデベロッパー ポータルを通じて登録できますが、管理者がデベロッパー ポータルのユーザー インターフェースを通じて承認する必要があります。また管理者はポータルでデベロッパーを直接作成できます。この場合、ポータルは、アカウントが作成されたデベロッパーにメールを自動的に送信します。
  • デベロッパーのアカウントの変更。たとえば、管理者はユーザーのアカウント ステータスを active から blocked に変更できます。また、会社名など、デベロッパーのプロファイル情報を変更することもできます。
  • デベロッパーの削除。管理者は、デベロッパーのアカウントの無効化または削除を行うことができます。
  • ロールと権限の割り当て。管理者は特定のロールをデベロッパー アカウントに割り当てることができます。書籍またはその他のコンテンツを作成する権限など、ロールはさまざまな権限と関連付けられています。また、ロールと関連付けられた権限の変更や、新しいロールの作成を行うことができます。

詳細については、ユーザー アカウントの追加と管理をご覧ください。

デベロッパー ポータル機能の概要

次の表に、デベロッパー ポータルの機能について概要を示します。

機能 詳細
ブラウザのサポート

サポートされているソフトウェアとそのバージョンをご覧ください。

ユーザー登録

  • 新しいデベロッパー アカウントの手動または自動での承認
  • OpenID の統合
  • Twitter、Google、および GitHub でのシングル サインオン(SSO)のサポート
  • CAPTCHA
  • カスタム項目

ユーザー管理

  • ユーザーの作成と編集
  • 役割の割り当て

ポータルの外観

  • CSS、イメージ、および Drupal モジュールによるカスタマイズ

コンテンツとコミュニティの管理

  • オープンソース(Drupal)ベース
  • テンプレート ベースのコンテンツ作成
  • API ドキュメント、ブログ、フォーラム、よくある質問のデフォルトで使用可能なコンテンツ タイプ
  • 自動化リンク(Del.icio.us、Digg、Twitter)
  • コンテンツのリビジョン管理
  • ブログ用のタグ、キーワード、およびアーカイブ
  • Google アナリティクスとの統合
  • コンテンツ用のカスタマイズ可能な自動入力条件
  • 管理者がモデレートするフォーラム投稿およびコメント
  • カスタム役割、ログイン、匿名ユーザーに基づくさまざまなアクセス

権限

  • 役割ベースのアクセスルール

API キー管理

  • 組み込みのアプリケーション登録
  • 自動または手動での API キー承認のサポート
  • 管理者によるキーの取り消しが可能

メール

  • SMTP サーバーの指定
  • ポータルがデベロッパーにメールを送信するタイミングの構成
  • ポータルで生成されるメールの内容と形式の制御

ブログ

  • ブログ投稿の作成、編集、および公開
  • ブログの作成を特定のユーザータイプに制限する役割ベースの権限

フォーラム

  • スレッド化されたデベロッパー フォーラムの作成
  • フォーラム カテゴリの追加的な作成(必要に応じて)
  • 役割ベースのモデレート

ドキュメント

  • API のドキュメント作成
  • FAQ
  • チュートリアル

メニュー

  • メニューの外観と内容の制御

検索

  • 組み込みの Apache Solr 検索
  • 特定コンテンツの検索。たとえば、フォーラムまたはブログ
  • Google インデックスの管理

リンク チェッカー

  • 壊れたリンクを調べるページチェック
  • リンク チェックリストの管理