2015年12月4日金曜日

そもそもWebAPIとは?

こんにちは山田です。
外部サーバとデータの受け渡しをする方法として、
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

2 件のコメント:

  1. 細かいですが言葉の使い方で気になったので念のため、、

    ■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)側でパラメータの書式を取り決めて(インターフェース)、呼び出し側はそれに従ってデータを送信してあげることになります。

    返信削除
  2. ご指摘ありがとうございます。
    >>HTTPリクエストを送る際のポイント
    GETメソッドとPOSTメソッドどちらでも可能なのすね。
    JSONとフォームについて意味を間違えていました。

    返信削除