1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

日本語プログラミング言語「プロデル」Advent Calendar 2021

Day 2

CKAN APIを操作する種類を作る

Last updated at Posted at 2021-12-01

 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}でパッケージを検索する。
それを報告せよ。

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?