data.go.jpはCKAN APIを提供しており,データセットの検索が可能になっている。これを使いやすくするための種類を作成した。
CKANとは
ベースURIを持つ
バージョン3は,×。
自分で[パラメタ]を[API]に送りつける手順
【URI】
もしバージョン3なら
URIは,ベースURI&「api/3/action/」&API。
でないなら
URIは,ベースURI&「api/action/」&API。
もし終わり
もしパラメタが無なら
HTTPでURIを取得したものを返す。
でないなら
HTTPでURIへパラメタを送信したものを返す。
もし終わり
終わり
終わり
ベースとなるURIを持っておく変数と,APIのバージョンを指定する変数を宣言している。HTTPで【アドレス】へ【パラメータ:辞書】を〈【ヘッダ:辞書】にて〉〈【文字コード】として〉送信する
手順は,パラメータを辞書で渡せば良い感じに投げてくれるので,そのまま辞書で渡せるように自分で[パラメタ]を[API]に送りつける
手順も引数に辞書を渡せるようにしている。
このCKAN種類にCKANのAPIドキュメントに従って手順を足していく。
例えば,ckan.logic.action.get.site_read
であれば,こう。
自分がサイトを読み込む手順
【API】
【パラメタ】は,無。
APIは,「site_read」
自分でパラメタをAPIに送りつけたものをJSON形式として読み取ったものを返す。
終わり
ckan.logic.action.get.package_search
の場合はこう。
自分が〈[パラメタ]で〉パッケージを検索する手順
【API】
APIは,「package_search」
自分でパラメタをAPIに送りつけたものをJSON形式として読み取ったものを返す。
終わり
APIはJSON形式でデータを返してくるので,これをJSON形式として読み取る
手順で辞書に変換して返すようにしている。
次のコードで実行してみる。
APIというCKANを作る。
APIのベースURIは,「https://www.data.go.jp/data/」。
APIが{q=「res_format:XLSX」,rows=5}でパッケージを検索する。
それを報告せよ。