今さら聞けないRESTの話、効率的なコンテンツ配信を可能にするRESTとは?

【新連載】CPIエバンジェリストのお悩み相談室①
 今さら聞けないRESTの話
 効率的なコンテンツ配信を可能にするRESTとは?


2017年2月2日
TEXT:阿部 正幸(KDDIウェブコミュニケーションズ)

今、シンプルで扱いやすいRESTが注目を浴びています。昨今は1社が保有するWebサイトが増え、それぞれが異なるシステムを利用することも多く、管理が煩雑なケースがあります。このような場合の解決策の1つとしてRESTが活用されることもあります。さらに、行政データのオープン化に向けた動きが活発ですが、こうした場面でも効率よくデータ配信できるRESTの利用は進んでいます。今回は、セミナー登壇時にお話ししたことをベースに、RESTの概要と、参加者からよく受けるお悩みもあわせてご紹介したいと思います。

今回の内容は、PHPカンファレンス2016@東京にて「未来のWebに欠かせないREST APIをApache Solr + Drupalで実装しよう」というタイトルで講演したものです。当日使用したスライドも公開していますので、あわせてご覧ください。

URL:http://www.slideshare.net/MasayukiAbe1/webrest-apiapache-solr-drupal8php2016-68358246

 [目次]

・注目を浴びるREST(RESTful Webサービス)とは
・RESTサーバーについて
・REST構築でよくあるお悩み
・最後に

●注目を浴びるREST(RESTful Webサービス)とは

RESTとは、REST(Representational State Transfer)によって定義されたアーキテクチャーの原則に従って、リソース情報を取得、作成、修正、削除が行えるAPIインターフェースです。リソースへのアクセスはリソース固有のURIにHTTPメソッドを明示的にアクセスします。簡単にいうと、WebサイトなどがRESTサーバーに固有のURIとメソッドを使い、リソース(データ)を要求し、jsonデータやxmlデータを取得します。

RESTという概念は古くから存在しますが、再び注目を浴びている理由のひとつは、増え続けるWebサイトや増え続けるマルチデバイスに効率よくリソース(コンテンツ)を配信することができるからです。

下図のように、1社で複数のサイトを保有し、さらにサイトごとに入っているシステムの違いや様々なデバイスでの利用を考えると、これまでのWebサイトの作り方では非効率となってきました。

そこで、リソース(コンテンツ)配信用のサーバー(RESTサーバー)を用意します。各Webサイトやデバイスのアプリケーションからデータを取得しにくるWebシステム(REST)を設けるだけで、これまで手作業だった部分が自動化され、効率的なコンテンツ配信が可能になります。

●REST サーバーについて


RESTful Webサービスはリソースに対して、固有のURIにHTTPメソッドを明示的にアクセスします。

(例)REQUEST URI:http://example.com/node/123 HTTP Method:GET

Return code:200 OK

この例では、ノード(記事)番号123番のリソースに対してGETメソッドを使いリソースを取得しています。RESTはさまざまな方法で構築できますが、今回はオープンソースCMSのDrupal8(https://www.drupal.org/)を用いた例を紹介します。Drupal8では、下記のHTTPメソッドで各リソースにアクセスできます。

Method 意味 Return code
GET リソース取得 200 OK
POST 新規作成 201 Created
PATCH 編集 204 No Content
DELETE 削除 204 No Content
HTTP1.1で扱えるメソッドは下記のとおりです。

GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE

<form action=”./send.php” method=”post”> のようにPOSTメソッドや、GETメソッドを指定している「method=”post”」の箇所がメソッド名です。一般的にRESTで使われているメソッドは下記のメソッドです。

POST、GET、PUT、PATCH、DELETE

PATCHに関してはリソースの一部をアップデート(編集)する場合に利用し、PUTはリソースの完全な置き換え(置換)する場合に利用するためのメソッドです。そのためリソース編集は、PUTやPATCHが使われますが、Drupal8では、リソースの一部に対してアップデート(編集)を行うので、PATCHメソッドを利用します。
(PATCHにより、リソースを編集した)

(PATCHにより、リソースを編集した)

※具体的な構築方法はCPIスタッフブログ(http://shared-blog.kddi-web.com/webinfo/205)を参照ください


●さまざまなWebサービスに使われるRESTの活用

 

ここで役立ちそうな質問をセミナー時にもらったので、あわせて紹介したいと思います。

[質問1]

今回紹介したCMSはDrupalでしたが、その他のCMSでもRESTの構築は可能でしょうか?

答え:可能です。

各社CMSは、REST化するためのプラグインがすでにありますので、簡単に構築できます。

・WordPress:WP REST API(http://ja.wp-api.org/)
・Movable Type:Data API(https://www.movabletype.jp/developers/data-api/
・Joomla!:Rest API(https://extensions.joomla.org/extension/rest-api

[質問2]
RESTの活用例を教えてください。

答え:

京都市が公開した「KYOTO OPEN DATA」は、京都市が保有するデータをAPI経由で誰でも簡単に取得できるオープンデータポータルサイトです。Drupalでの開発実績が豊富なANNAI株式会社によって開発され、地域経済の活性化や行政の透明性・信頼性の向上などを目的に開設されました。

京都市のオープンデータポータルサイト

京都市のオープンデータポータルサイト

安倍内閣の成長戦略のひとつに「電子行政オープンデータ戦略」がありますが、簡単にいうと、政府や公共機関が保有するデータをオープン化することで、さまざまなwebサービスへの活用を促し、官民一体となった課題解決へデータ流通を促進させる取り組みです。京都市のように、今後オープンデータ化される動きの中で、効率よくデータ配信できるRESTの技術は注目をあびることと考えられます。


●最後に

CMSはインタラクティブとマルチプラットフォームのためのAPIに急速に進化しています。未来のWebに欠かせないRESTは、今後さらに必要となり、今後どのようにRESTを活用するか、どのようにRESTを構築するかに注目が集まることでしょう。それではまた、Webセミナー登壇時にいただきました質問にお答えさせていただきますので、第2回目の記事をお楽しみに。
>>>「CPIエバンジェリストのお悩み相談室」の目次はこちら


[筆者プロフィール]
阿部 正幸(あべ まさゆき) | KDDIウェブコミュニケーションズ/エバンジェリスト
システム開発会社で大規模なシステム開発を経験後、Web制作会社でプログラマー兼ディレクターとして従事。その後、KDDIウェブコミュニケーションズに入社、レンタルサーバーCPIのプロダクトマネージャーに就任。ACE01、SmartReleaseをリリース後、現職の「エバンジェリスト」としてWeb制作に関する様々なイベントに登壇。Drupal(g.d.o Japan)日本コミュニティー、HTML5 funなどに所属し、OSSを世に広げる活動やWeb制作に関する情報を発信している。

●PHPカンファレンス2016@東京で使用したスライド
「未来のwebに欠かせないREST APIをApache Solr + Drupalで実装しよう」
 URL:http://www.slideshare.net/MasayukiAbe1/webrest-apiapache-solr-drupal8php2016-68358246

●CPIフタッフブログ
「RESTful webサービスを構築しよう」
 URL:http://shared-blog.kddi-web.com/webinfo/205


twitter facebook このエントリーをはてなブックマークに追加 RSS

▷こんな記事も読まれています

Recommended by