DrupalのJSON:APIの使用方法に関する備忘録です。今回は、タクソノミーなどに対するincludeと多言語処理について記載します。
データ#
以下のように、positionフィールドにタクソノミー「助教」を付与しています。
/node/5

また、コンテンツの多言語化を有効にしており、以下のように、タイトルとpositionの英語も表示されます。
/en/node/5

JSON:API#
上記のコンテンツをコンテンツタイプ「faculty」に作成したので、以下のURLから、データの一覧を取得できます。
/jsonapi/node/faculty/
以下は、linksフィールドを除く結果を表示しています。field_positionにタクソノミーのIDが含まれていますが、当該タクソノミーのラベル等はふくまれていません。
includeを使う#
クエリに、?include=field_positionを追加します。結果、以下のように、includedフィールドが追加され、タクソノミータームのnameフィールドの値も得ることができました。
さらに、fieldsクエリを使用すると、以下のように、取得結果を小さくすることができます。
/jsonapi/node/faculty/?include=field_position&fields[node–faculty]=title,field_position&fields[taxonomy_term–position]=name
多言語対応#
言語をURLに追記するだけで、当該言語のデータを取得できました。
/en/jsonapi/node/faculty/?include=field_position&fields[node–faculty]=title,field_position&fields[taxonomy_term–position]=name
まとめ#
様々な機能が実装されていて、とても便利だと思いました。他の方の参考になりましたら幸いです。