Hugoの外部API利用機能
1. Hugoで外部APIデータの取得 1-1. HugoでData-Driven Content機能を利用する Hugoで外部APIのURLで取得したCSVやJSONデータを利用できるData-Driven Content機能があります。
文書生成時で取得したデータです(ページ表示の毎アクセス時ではありません)。 1-2. WEB APIのテスト http://project.iw3.org/zip_search_x0401/ - ZIP SEARCH API SERVICE 「JIS X0401」対応版ver 1.0.0
サンプル例としてIW3 PROJECTのページで紹介されている以下の例でテスト。
http://api.thni.net/jzip/X0401/JSON/郵便番号上3桁の数値/郵便番号下4桁の数値.js
郵便番号 => 住所を返してくれるWEB APIだ。
$ curl http://api.thni.net/jzip/X0401/JSON/753/0070.js { "state":"35", "stateName":"山口県", "city":"山口市", "street":"白石" } 1-3. Shortcode呼び出しを作成 Data-Driven Contentは記事のMarkdownファイルではなく、HTMLで記述する部分で機能するものであるため、 Shortcodeを作ってその中に記述します。
layouts/shortcodes/zipaddress.html {{ $dataJ := getJSON "http://api.thni.net/jzip/X0401/JSON/" (.Get 0) "/" (.Get 1) ".js" }} <ul> <li>state = {{ $dataJ.state}}</li> <li>stateName = {{ $dataJ.stateName}}</li> <li>city = {{ $dataJ.city}}</li> <li>street = {{ $dataJ.