Web APIの使い方
Yahoo! JAPANが提供するWeb APIのリクエスト方法について解説しています。
GETとは
GETとは、「リソース(情報)を取得する」ためのHTTPメソッドです。Webサイトをブラウザーで見るとき、内部ではGETによるリクエストが行われています。Web APIも情報を取得する性質のものが多いため、GETをよく使います。
POSTとは
POSTとは、「リソース(情報)を更新・作成する」ためのHTTPメソッドです。GETはパラメーターをURL中に含めていましたが、POSTはリクエストボディーにパラメーターを配置するため、パラメーターの長さに上限がないという特徴があります。
Yahoo!デベロッパーネットワークで提供するWeb APIには、POSTを使ってリクエストしてもGET相当の結果が返ってくるものがあります。これは長いパラメーターを受け付けるための仕様です。GETとPOSTを区別するかしないかはWeb APIごとに対応状況が異なりますので、各Web APIのドキュメントもご覧ください。
PUTとは
PUTとは、「リソース(情報)を更新・作成する」ためのHTTPメソッドです。POSTと似ていますが、「べき等(何度リクエストしても結果が同じ)」という性質があります。POSTでリソースを新規作成し、PUTで更新するWeb APIが典型的です。
Yahoo!デベロッパーネットワークで提供するWeb APIには、PUTによる更新をサポートしているものがあります。実際は、特定のユーザーに関する情報を更新するケースがほとんどですので、OAuthを使うことになるでしょう。
リクエストの構造はPOSTと同じです。
DELETEとは
DELETEとは、「リソース(情報)を削除する」ためのHTTPメソッドです。
Yahoo!デベロッパーネットワークで提供するWeb APIには、DELETEによる削除をサポートしているものがあります。実際は、特定のユーザーに関する情報を削除するケースがほとんどですので、OAuthを使うことになるでしょう。
リクエストの構造はGETと同じです。
アプリケーションIDについて
Yahoo!デベロッパーネットワークで公開されているWeb APIを使う際には、アプリケーションIDが必要です。
登録したアプリケーションIDは、以下のいずれかの方法でリクエストに付与してください。
Yahoo! ID連携に対応したWeb APIについては、アプリケーションIDの代わりにYahoo! ID連携のフローで取得したアクセストークンが必要となります。
リクエスト方法の詳細はYahoo! ID連携のAPIアクセス実装方法をご覧ください。
User-Agent方式
User-Agentヘッダーの末尾に以下の形式で埋め込むことでアプリケーションIDを渡します。
User-Agent: <元のUser-Agent文字列>; Yahoo AppID: <あなたのアプリケーションID>
User-Agentがもともと空の場合は、
User-Agent: Yahoo AppID: <あなたのアプリケーションID>
となります。
パラメーター方式
パラメーターとして後述のクエリーストリングに混ぜ込むことでアプリケーションIDを渡すこともできます。こちらの方が手軽で、ヘッダーを操作できない場合でも使うことができます。
appid=<あなたのアプリケーションID>