logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll
09/04/2025, by Ivan

このページでは、JSON:APIモジュールのさまざまなGETリクエストの例を示します。

以下のすべての例で、リクエストヘッダーは不要です。匿名ユーザーがコンテンツエンティティにアクセスできる場合は、認証も不要です。メニューなどの設定エンティティについては、最後のセクションを参照してください。

すべての場合において、idが必要なときは、常にエンティティのIDではなくエンティティのuuidであることに注意してください。

Acceptヘッダー

常にacceptヘッダーを送信してください:Accept: application/vnd.api+json

curl \
  --header 'Accept: application/vnd.api+json' \
  .... 

基本的なGETの例

URL: http://example.com/jsonapi/node/article/{{article_uuid}}

レスポンス

HTTP 200レスポンス。レスポンスボディには、属性、リレーションシップ、リンクを含む、単一の記事ノードのJSON:APIオブジェクトが含まれます。

複数の記事を取得するGET

URL: http://example.com/jsonapi/node/article

レスポンス

HTTP 200レスポンス。レスポンスボディには、次のページへのリンクを含む、最大50件の記事のJSON:APIオブジェクトが含まれます。

最初の10件の記事を取得するGET

URL: http://example.com/jsonapi/node/article?page[limit]=10

レスポンス

次のページへのリンクを含む、最大10件の記事のJSONレスポンス。

2ページ目の10件の記事を取得するGET

URL: http://example.com/jsonapi/node/article?page[limit]=10&page[offset]=10

レスポンス

HTTP 200レスポンス。レスポンスボディには、前のページや次のページなどへのリンクを含む、最大10件の記事のJSON:APIオブジェクトが含まれます。

ページングの詳細については、次を参照してください: https://www.drupal.org/docs/8/modules/jsonapi/pagination

ソートされた複数の記事を取得するGET

URL: http://example.com/jsonapi/node/article?sort=nid

レスポンス

HTTP 200レスポンス。レスポンスボディには、nid昇順でソートされた記事のJSON:APIオブジェクトが含まれます。降順でソートするには&sort=-nidを使用します。

ソートの詳細については、次を参照してください: https://www.drupal.org/node/2803141

タイトルでフィルタリングされた記事を取得するGET

URL: http://example.com/jsonapi/node/article?filter[article-title][path]=title&filter[article-title][value]={{title_filter}}&filter[article-title][operator]==

レスポンス

HTTP 200レスポンス。レスポンスボディには、'title'フィールドの値が'{{title_filter}}'と一致する記事のJSON:APIオブジェクトが含まれます。

フィルターの詳細については、次を参照してください: https://www.drupal.org/node/2943641

参照を含めることで、記事のメディアエンティティ参照フィールドfield_imageのurl、uriを取得するGET

新しい構文

URL: 

http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_image&fields[file--file]=uri,url

古い構文

URL: http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_image,field_image.image,field_image.image.file--file&fields[field_image]=image&fields[file--file]=uri,url

 

レスポンス

HTTP 200レスポンス。レスポンスボディには、'{{article_uuid}}'に一致する単一の記事ノードに対応する、含まれるメディアイメージのリレーションシップのJSON:APIオブジェクトが含まれます。

関連データ一式(著者、タクソノミータームなど)とともに記事を取得するGET

URL: http://example.com/jsonapi/node/article?fields[node--article]=uid,title,created&include=uid

レスポンス

HTTP 200レスポンス。レスポンスボディには、関連するユーザーに関するすべての情報を含むユーザーオブジェクトが含まれます。同じ構文は、タクソノミータームなどの他の関連データでも機能します。

ユーザー参照フィールドfield_user_ref_exampleと、そのプロファイルref_example_profileを持つ記事を取得するGET(参照フィールド内の参照フィールド)

URL: http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_user_ref_example,field_user_ref_example.ref_example_profile

レスポンス

HTTP 200レスポンス。レスポンスボディには、関連するユーザーとそのプロファイルに関するすべての情報を含むユーザーオブジェクトが含まれます。同じ構文は、参照フィールドも含む他の関連データでも機能します。

選択した関連データ項目(著者、タクソノミータームなど)とともに記事を取得するGET

URL: http://example.com/jsonapi/node/article?fields[node--article]=uid,title,created&fields[user--user]=name,mail&include=uid

レスポンス

HTTP 200レスポンス。レスポンスボディには、関連オブジェクト内の指定されたフィールド(この場合は著者名と著者のメールアドレス)を含むユーザーオブジェクトが含まれます。同じ構文は、タクソノミータームなどの他の関連データでも機能します。

ユーザーアカウントを取得するGET

URL: http://example.com/jsonapi/user/user?filter[anon][condition][path]=uid&filter[anon][condition][value]=0&filter[anon][condition][operator]=<>

レスポンス

HTTP 200レスポンス。レスポンスボディには、匿名ユーザーアカウントを除く、システム内のユーザーアカウントのJSON:APIオブジェクトが含まれます。すべてのユーザーアカウントのリストを取得したい場合は、単純に/jsonapi/user/userにGETリクエストを送るのではなく、上記のクエリを使用する必要があることに注意してください。GETリクエストを送るとHTTP 403エラーになります

設定エンティティを取得する。

設定エンティティ(メニュー、ノードタイプ、ツアー)はコンテンツエンティティ(ノード、ユーザー)とは異なるため、これはもう少し複雑です。現在、設定エンティティは読み取り専用です。

簡単なテストのために、user-1とbasic_authモジュールを使用します。

  1. basic authモジュールを有効にします
  2. user-1の名前がadminでパスワードがadminであると仮定します

次のコマンドを使用すると、メニューのリストが表示されます。

curl \
  --header 'Accept: application/vnd.api+json' \
  http://admin:admin@drupal.d8/jsonapi/menu/menu

Drupalドキュメントからの記事です。