さて、いきなりですが、あなたのお気に入りのアプリではどのようにしてGoogleの認証情報でアカウントを作成したり、ログインしたりすることができるかご存知ですか?また、あなたのお天気アプリは今日の天気予報をどのように取得しているかご存知でしょうか?それは、データを取得したり、認証情報を確認するために外部のシステムと連携しているために可能となるのです。これらの2つのシステムが共に通信するには、「API」というものを使います。

APIとは、"Application Programming Interface"の頭字語であり、単に通信するためのルールを定めるものです。主な役割は、エンドポイントからデータを取得し、必要に応じてフォーマットし表示させることです。

Drupalでは、APIはデフォルトのコアモジュールであるRESTful Web ServicesとViewsを通じて作成/変更することができます。このモジュールは、エンティティやその他のリソースをRESTful Web APIとして公開し、Serializationモジュールにより、お好みに応じて異なるフォーマットを選択することができます。

では、これまでにご紹介したことを踏まえ、APIを構築してみましょう。


1. Drupalの Extend (/admin/modules) ページで、Webサービスの下にあるRESTful Web APIとSerializationモジュールを有効にします。

1
 

2. Views (/admin/structure/views) に移動し、「My Custom API」という名前の新しいビュー構成を作成し、レンダリングするコンテンツ/タクソノミーのタイプを選択します。

2

3. ビューページのまま、「REST export settings」の下にある「Provide a REST export」のチェックボックスにチェックを入れてください。チェックボックスがオンになると、「REST export path」という別の入力フィールドが表示されます。このフィールドは、Views custom APIのURLパスを決定します。この例では、単に「my_custom_api」として設定し、「Save and Edit」をクリックします。

3

4. 保存した後、「Format」の下の「Serializer」の横にある「Settings」を編集し、この例では「json」を選択します。

4

5

注:必要に応じて、他のフォーマットを選択することもできます。

5. 次に、表示させたい内容を選択します。「Format」セクションの下にある「Entity」をクリックし、この例では「Fields」を選択して、「Apply」をクリックします。

6

注:必要に応じて、他のフォーマットを選択することもできます。

6. 「Fields」を選択した後に表示されるデフォルトのフィールドは「Title」です。「Link to the Content」のチェックボックスを外すことで、タイトルからノードへのリンクを削除し、「Apply」をクリックします。

7

7. ここまで来ればゴールは目前です!すべての設定が完了したら、表示するフィールドを追加するかどうかはあなた次第です。この例では、最初にビューを追加するときに選択したコンテンツ内のすべての「Title」を表示するだけです。ビュー構成は以下のようになります。

7
 

8. 最後のステップは、上記のビュー設定を使用して作成したカスタムAPIをテストすることです。これをテストするには、先に「REST export path」で指定したパス、つまり「my_custom_api」にアクセスするだけです。URLパスは次のようになります: [scheme://host]/my_custom_api


最終的に、以下のようなカスタムAPIから生成されたJSON値が得られます。

8

ということで、RESTful Viewsを使用すれば、簡単に特定の形式でAPIを作成/変更できるのです!