Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

RESTを使ってDRUPAL8のNODE情報を取得してみた

43 Aufrufe

Veröffentlicht am

2019/06/07

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

RESTを使ってDRUPAL8のNODE情報を取得してみた

  1. 1. RESTを使ってDRUPAL8の NODE情報を取得してみた ナカちゃん
  2. 2. はじめに ■ DrupalはRESTをサポートしているらしい。 – じゃあやってみようじゃないか ■ 自分が試した事の情報共有です。 – ( ´_ゝ`)フーン・・・って感じで見ていただけると僥倖。 ■ Drupal8に関する知識(カスタムモジュールやviewなど)が必要です。
  3. 3. REST? ■ RESTとは、2000年にRoy Fielding氏が提唱した、分散システムにおいて複数のソ フトウェアを連携させるのに適した設計原則の集合。また、狭義には、それを Webに適用したソフトウェアの設計様式のこと。一般には後者の意味で用いら れることがほとんどである。 ■ 今回はRESTの知識は重要ではないので、 “何がしかのデータをHTTP(S)経由で取得するための手段” ぐらいのざっくりした理解でOKです。 ■ いやRESTって取得だけじゃないよね?的なツッコミをくらいそうですが、ス ルーします http://e-words.jp/w/REST.htmlより引用
  4. 4. まずはbetterな方法 ■ RESTfulWeb Servicesモジュールを使う – Drupal8をインストールするともれなくついてきます。 ※管理者メニューの「機能拡張」画面です
  5. 5. インストールするよ! ■ 件のモジュールと、それからRESTUIモジュールをインストール – REST UIモジュールはRESTに関する設定をUIで行うことができるようになるモ ジュールです。(とりあえず入れておくことをお勧めします)
  6. 6. インストールするよ! ■ 依存モジュールもインストール
  7. 7. インストールするよ! ■ インストール完了後、管理者メニューの「環境設定」>「REST」を表示させる。
  8. 8. インストールするよ! ■ 有効化したいリソース(今回はひとまずnodeを対象にする)を選択してリソー スの設定画面を表示
  9. 9. インストールするよ! ■ GETメソッドのみ許可し、データはJSONで返すようにしてみる。
  10. 10. インストールするよ! ■ 有効化OK
  11. 11. 使ってみるよ! ■ まずは記事(article)を新しく作成。 – http://xxx.xxx.xxx.xxx/node/15
  12. 12. 使ってみるよ! ■ Chrome Restlet Client を使ってデータを取得 先ほど作成したnodeのnid
  13. 13. 使ってみるよ! ■ node情報が取れた。
  14. 14. で、
  15. 15. nodeの一覧情報とかは取れないの? (nid一覧とか取りたいんだけど・・・)
  16. 16. できるよ! ■ viewを使いましょう。 – View作成時にREST出力を提供するかどうか選ぶことができます。
  17. 17. できるよ! ■ viewを使いましょう。 – あとから追加も可能
  18. 18. 作ってみるよ! ■ まずはviewを追加。 ・ ・ ・ 例として「記事」を対象にし たviewとする。 /rest/article をエクスポートパスとする
  19. 19. 作ってみるよ! ■ 設定を変更 データはJSON形式で返すよう にする
  20. 20. 作ってみるよ! ■ 設定を変更 ひとまず「cookie」にチェックしておく。 ※認証メソッドが選択されていない状態 だとRESTを利用できない
  21. 21. 作ってみるよ! ■ フィールド(=JSONとして吐き出せるデータ)を追加して、設定完了。
  22. 22. 試してみるよ! ■ Chrome Restlet Client を使ってデータを取得 エンドポイントは サイトURL+エクスポートパス になる
  23. 23. 試してみるよ! ■ 一覧情報(nidとtitle)が取れた
  24. 24. ここからは応用編です。
  25. 25. extra1 ■ パスの一部をパラメータとして受け取って、絞り込みを行ってみる。 – コンテクスチュアルフィルターを使えばOK nidによる絞り込み /rest/article/{nid}となるようなパスを想定
  26. 26. extra1 ■ データ取得(全取得) – http://xxx.xxx.xxx.xxx/rest/article/all?_format=json ※”all”はすべてのnidにマッチするワイルドカードのようなものです。
  27. 27. extra1 ■ データ取得(特定のnode) – http://xxx.xxx.xxx.xxx/rest/article/15?_format=json
  28. 28. extra2 ■ データをネストさせてみる。 – カスタムモジュールのインストールが必要 ・REST Export Nested(https://www.drupal.org/project/rest_export_nested) ※security advisory policyに準拠していないため、使用時はその点に注意。 ・Views FieldView(https://www.drupal.org/project/views_field_view)
  29. 29. extra2 ■ 設定例 REST export nestedというディスプレイを選ぶ と、ネストした JSONに対応できるようになる
  30. 30. extra2 ■ 設定例 他のview(RestExport)を含める事ができる この部分がネストされて出力されることになる
  31. 31. extra2 ■ ちなみに、先ほどのviewで記載している”他のview”の設定は以下のとおりです。
  32. 32. extra2 ■ データ取得 – http://xxx.xxx.xxx.xxx/rest/article_nest/15?_format=json
  33. 33. 以上です。 ■ ありがとうございました。

×