はじめに
API(Application Programming Interface)を利用することは、開発者にとって欠かせないスキルですが、理解が難しいと感じて1年間避けてきました。しかし、今年こそは理解し、実際に試してみることにしました。その結果、意外にも簡単にできたので、まとめてみます。
WebAPIとは
WebAPIは、ウェブ上で異なるソフトウェア同士が情報をやり取りするための一連の定義やプロトコルです。これにより、異なるプログラム間でデータを共有し、相互に連携させることが可能です。本記事では、Web上でAPIを操作することで、その仕組みを感覚的に理解していきます。
WebAPIを叩くイメージ

WebAPIではURLで欲しいデータを指定してWebサーバーにアクセスすることで、サーバーからXML形式やJSON形式のデータを取得します。
URLにアクセスすることをリクエスト、返ってくるデータをレスポンスと言います。
実際に叩いてみる
ブラウザで、以下のurlを打ち込んで見てください。
https://sysbird.jp/toriko/api/?apikey=guest&keyword=抹茶&format=json
下の写真のようになったでしょうか?この、謎の文字の大群がレスポンスです。

リクエスト(URL)の解説

通常、APIを用いるにはAPIkeyというものを取得する必要がありますが、お菓子の虜というサイトで提供されているAPIではその必要なく手軽に試せるので、今回はこちらを用いました。
サイトにはリクエストURLやパラメータ、利用規約などの情報が得られます。
本記事では先ほどのURLに用いた情報のみ抜粋して説明するので、詳しくはサイトをご覧ください。
基本仕様
| 項目 | 内容 |
|---|---|
| プロトコル | REST |
| レスポンス | XML形式、JSON形式、JSONP形式 |
| リクエストURL | https://sysbird.jp/toriko/api/ |
パラメータ
| パラメータ | 項目名 | 説明 |
|---|---|---|
| apikey | APIキー(必須) | "guest"固定 |
| format | レスポンスの形式 | xml, json, jsonp |
| keyword | キーワード | お菓子の名称で部分一致検索。UTF8でURLエンコーディング |
パラメータは?で始めた後、&で複数繋げることができます
レスポンスの解説
先ほどのリクエストから、レスポンスとして、
お菓子の名称に"抹茶"が含まれるお菓子のデータがjson形式で返される
と予測されます。改めて見返してみましょう。

おかしいですね。数字と文字の暗号が返されました。
JSONは一般的にエンコードされます。エンコードとは、全角文字や制御文字も問題なく送信するために半角文字に置き換える手法です。それではエンコードされたデータをデコードしましょう。Syncerというサイトがおすすめです。
整形前のところにレスポンスのデータを貼り付けてください。

下にスクロールし、'ビューアー'をみてください。デコードされています! 今度はちゃんとお菓子の名称に"抹茶"が含まれるお菓子のデータがjson形式で返されていますね!

最後に
これでAPIの理解はできました。次は、実際に開発でAPIを使ってみようと思います!