Web APIとは(REST, SOAP, XML-RPC)
なんか年末大掃除でPC内を掃除してたら新人の頃に作ったドキュメントが出てきたので。。
概要
クライアントからサーバへのアクセス方法
REST(REpresentational State Transfer)
- RESTは仕様ではなく、WebAPIの仕様を決める上での基本的な考え方(アーキテクチャスタイル)を表す
- GET/POSTとURL文でAPIの内容(メソッドの名前、引数、オプション)を指定
- AmazonECSのRESTに基づく通信では、パラメータをURLに含めてGETメソッドを用いることにより、サーバからXMLデータを取得する
- RESTは「リソース」を扱うための考え方であり、「リソース」とはブログの記事であったり、アップロードした写真であったり、もしくはWebページ全体のコンテンツであったりといった、ひとかたまりの情報を指す
- その際の操作はHTTPのメソッドを「正しく」選択することで行う
- Blogの場合で考えると、GETで記事表示、POSTで新規投稿。PUTで記事更新、DELETEで記事削除
メソッド | 役割 |
GET | リソースの取得(GETでのアクセスはリソースの内容に影響を与えない) |
POST | リソースの新規作成 |
PUT | 既存のリソースのアップデート |
DELETE | リソースの削除 |
SOAP(Simple Object Access Protocol)
- W3Cによって作成されたXMLベースのプロトコル
- XML-RPCを拡張した仕様
- 2台のマシン間の通信はSOAPによって行われる
- HTTPを利用したSOAPベースのWebサービスは最も一般的で、簡単にしようすることが出来る
- SOAPのメッセージはインターネットプロトコル(tuuzyou
HTTPとHTTPS)上で送信される
XML-RPC(XML Remote Procedure Call)
- XML
- データとしてXMLを利用するWebAPIの仕様(XMLを利用してネットワーク越しにプロシージャ、つまり何らかの処理を呼び出すもの)
- アクセスするためのエントリポイントとなるURLが用意されている
- 1つのエントリポイントを使って複数のメソッドを提供できます
- アクセスの際にはメソッド名とパラメータを渡す
- パラメータは文字列や数値、配列などプログラムにおける通常のサブルーチン呼び出しと同じようなものが利用できる
- 処理の結果を戻り値として取得できる
- 戻り値を配列にすることで、複数の値(例えばブログのエントリのURLとタイトル、コンテンツなど)を返すこともできる
- クライアントからサーバへのアクセスには、HTTPのPOSTメソッドを利用する
- 送受信する情報はXMLで、リスエストとレスポンスにおけるボディとして送受信される
AtomPP(Atom Publishing Protocol)
- 情報配信フォーマットであるAtom Feed, Atom Feedを自動的に発見するたmの仕様でさるAtom Auto Discovery,そしてAtomPPの三つの仕様で構成されている
- AtomPPにおけるリソース
リソース | 意味 | ブログでいうと |
Collection | Memberをまとめたもの | ブログそのもの ブログにエントリを追加するときは、ブログ(Collection)のURIに対してPOSTメソッドでエントリのデータを送信することになる |
Member | 個々の情報 | 個々のブログのエントリ |
Introspection Document | アクセス可能なCollectionの一覧 | アクセス可能なブログ一覧 |
参照URL
- http://thinkit.co.jp/free/article/0609/8/1/ (Web API)
- http://thinkit.co.jp/free/books/2/5/1/ (SOAP)
- http://thinkit.co.jp/free/article/0609/8/4/ (REST)
- http://d.hatena.ne.jp/hikm/20070228/1172684400 (XML-RPC,SOAP,RESTの区別
- http://yohei-y.blogspot.jp/2005/04/rest_23.html (REST詳しく)
- PHPを用いて3行でAPIを作る!! | Life Tips
- https://www.ibm.com/developerworks/jp/opensource/library/os-understand-rest-ruby/ (Rails API)