小さいアプリを作りたいんじゃ!!Webアプリ編(1)

何年かWebエンジニアをやってると、「あー最近API叩いてねぇなぁ」ってことがあるじゃないですか。そんなときに、お手軽に叩いて結果を取得できるAPIがあると素敵ですよね。
今回はそんな話です。

さっき「お手軽に叩く」と書きましたけど、実はめっちゃハマりました。
というのも、いつも通りPythonを使おうと思って、最近あんまりいじってなかったMacで
pip install requests
をやったんですよ。
(※requestsはHTTP通信ライブラリです)
ちなみに環境はpyenv。

そしたらですね、
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)) - skipping
なんかこんなん出て、先に進めないんですね。
ググったらbrewでopenssl入れ直すとか出てくるんですがやってみても変化なし。
まさか今年最初のブログがこんな初っ端挫折記事で終わるのか?と思ったんですが、大丈夫でした。こちらの記事を参考に、pyenvでPythonを入れ直したらできました。teratailさんありがとう。

で、無事ライブラリも入ったので、当初の予定通り手頃なAPIを叩いてみます。
今回は「楽天レシピAPI」を叩かせてもらうことにしました。
どうしてかというと、思うところあって「レシピ検索ができる、機能を最低限に絞った小さいアプリを作ろう!」とふと思い立ったから。それ以上でも以下でもありません。

というわけで、早速叩いてみましょう。

import requests
appId = 'YOUR APPLICATION ID'
url = 'https://app.rakuten.co.jp/services/api/Recipe/CategoryList/20170426?format=json&applicationId=%s' % appId
resultJson = requests.get(url).json()
print(resultJson['result']['small'][0])
結果がこちら。
{'categoryName': 'ソーセージ・ウインナー', 'parentCategoryId': '66', 'categoryId': 50, 'categoryUrl': 'https://recipe.rakuten.co.jp/category/10-66-50/'}
結果の出力のところはすごい数が返ってきちゃうので絞ってますが、まぁこんな感じ。
驚くほど短いコードでレシピのWebページのURLが取得できましたね。

これでおしまい、というわけではもちろんなく、次回からはこれを小さいアプリに膨らませていきたいと思います。飽きなければ。