Web APIの使い方
提供する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と同じです。
PATCHとは
PATCHとは、「リソース(情報)を部分的に更新する」ためのHTTPメソッドです。PUTと似ていますが、「べき等(何度リクエストしても結果が同じ)であるとは限らない」という性質があります。
Yahoo!デベロッパーネットワークで提供するWeb APIには、PATCHによる更新をサポートしているものがあります。実際は、特定のユーザーに関する情報を更新するケースがほとんどですので、OAuthを使うことになるでしょう。
リクエストの構造はPOSTやPUTと同じです。
DELETEとは
DELETEとは、「リソース(情報)を削除する」ためのHTTPメソッドです。
Yahoo!デベロッパーネットワークで提供するWeb APIには、DELETEによる削除をサポートしているものがあります。実際は、特定のユーザーに関する情報を削除するケースがほとんどですので、OAuthを使うことになるでしょう。
リクエストの構造はGETと同じです。
Client ID(アプリケーションID)について
Yahoo!デベロッパーネットワークで公開されているWeb APIを使う際には、Client IDが必要です。こちらでアプリケーションを登録することで、Client IDを発行できます。発行した時期によってはアプリケーションIDと表記される場合があります。
Client IDは以下のいずれかの方法でリクエストに付与してください。
Yahoo! ID連携に対応したWeb APIについては、Yahoo! ID連携のフローで取得したアクセストークンが必要です。
リクエスト方法の詳細はYahoo! ID連携のAPIアクセス実装方法をご覧ください。
User-Agent方式
User-Agentヘッダーの末尾に以下の形式で埋め込むことでClient IDを渡します。
User-Agent: <元のUser-Agent文字列>; Yahoo AppID: <あなたのClient ID>
User-Agentがもともと空の場合は、
User-Agent: Yahoo AppID: <あなたのClient ID>
となります。
パラメーター方式
パラメーターとして後述のクエリーストリングに混ぜ込むことでClient IDを渡すこともできます。こちらの方が手軽で、ヘッダーを操作できない場合でも使うことができます。
appid=<あなたのClient ID>