外部サーバとデータの受け渡しをする方法として、
APIという方法があるとわかったのでその調査をしてみました。
よくあるAPIとしてはGeogleMAPや郵便番号の検索が思いつくと思います。
日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】
■そもそもWebAPIとは
Application Program Interfaceの略
直訳すると、あるプログラムを、他のアプリケーションから利用するためのインターフェースという意味になります。
目的としては、自社で保有するデータや、システム、アプリケーション、Webサービスの機能を公開して他社で使ってもらうためです。
動きとしては
WebAPIで機能を公開しているサーバに対して、HTTPリクエストの形で送信して、
処理結果がHTTPレスポンスの形で返ってきます。
■URLの設計
方法としてサブドメインに配置する方法 http://api.example.com/
ドメイン下に置く方法 http://example.com/api/
それぞれあります。
自分でつくるサイトは小規模なので、後者でよさそうです。
■外部APIと内部APIの違い
社外の人に使ってもらうものを外部APIと呼び分けています。
社内で完結する場合は内部APIというものになります。
■データ通信形式
XMLとJSON(JavaScript Object Notation)がある
最近では可読性の観点から、JSONを使うことが一般的のようです。
■HTTPリクエストを送る際のポイント
●リクエスト形式
HTTPリクエストを送信する方法としては、大きく分けてJSONとフォームの二つがあります。
フォーム形式が一般的で、フォームでのPOST送信の場合、文字データだけではなく画像や動画などのバイナリデータも送れます。
JSON形式も最近多い形です。こちらは構造化したJSONデータなので、送る際に可読性が上がるというメリットがあります。
5分で絶対に分かるAPI設計の考え方とポイント より
http://www.atmarkit.co.jp/ait/articles/1511/19/news022.html
細かいですが言葉の使い方で気になったので念のため、、
返信削除■WebAPI
Web(HTTPなど)経由でアクセスするAPIの総称
■外部APIと内部APIの違い
社内/社外でもほぼ同じ意味なのですが、インターネット上に公開するかどうか、で区別するほうが正しいかもしれないですね。
■データ通信形式(レスポンスのデータ形式)
HTTPのレスポンスなので、プレーンテキスト、HTML、画像等、用途に応じて何でも実装できます。
GoogleやYahoo等で公開されているWebAPIが主にXMLやJSONを採用しているという感じですね。
■HTTPリクエストを送る際のポイント
JSONとフォームという区分けは少し違和感がありました。
これも主要な公開APIがそうしている、という話なのかもですが。
HTTPによるリクエストなのでパラメータを送信する場合は
GETメソッドでクエリパラメータにするのもありですし、
POSTメソッドでBODYで送信するのもありですね。
テキストのパラメータ書式として、個別に繋げて
hoge=HOGE&fuga=FUGA&piyo=PIYO
と送ることもできますし、JSONに変換して
param={"hoge":"HOGE","fuga":"FUGA","piyo":"PIYO"}
と送ることもできます。(本来はURLエンコードする)
サーバ(WebAPI)側でパラメータの書式を取り決めて(インターフェース)、呼び出し側はそれに従ってデータを送信してあげることになります。
ご指摘ありがとうございます。
返信削除>>HTTPリクエストを送る際のポイント
GETメソッドとPOSTメソッドどちらでも可能なのすね。
JSONとフォームについて意味を間違えていました。