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>

アプリケーションの管理

開発のヒント