-
Notifications
You must be signed in to change notification settings - Fork 4
/
611.txt
157 lines (118 loc) · 5.77 KB
/
611.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
[13]
[[CKAN]] の [[Web API]] のうち主要なものは他の同種の[[Webサービス]]にも実装され、
この分野の[[事実上の標準]]となっています。
[1] [[CKAN]] 本家のドキュメント:
[REFS[
- [15]
[CITE@en[API guide — [[CKAN]] 2.10.4 documentation]], [TIME[2024-03-13T10:50:27.000Z]], [TIME[2024-04-13T12:32:27.540Z]] <https://docs.ckan.org/en/2.10/api/index.html>
-- [20]
[CITE@en[API guide — [[CKAN]] 2.10.4 documentation]], [TIME[2024-03-13T10:50:27.000Z]], [TIME[2024-04-13T12:45:49.135Z]] <https://docs.ckan.org/en/2.10/api/index.html#ckan.logic.action.get.package_list>
-- [22]
[CITE@en[API guide — [[CKAN]] 2.10.4 documentation]], [TIME[2024-03-13T10:50:27.000Z]], [TIME[2024-04-13T12:47:09.552Z]] <https://docs.ckan.org/en/2.10/api/index.html#ckan.logic.action.get.package_show>
]REFS]
* URL
[16]
[CODE[http://demo.ckan.org/api/3/action/package_list]]
のような [[URL]] で[[パッケージ]]の一覧を、
[CODE[http://demo.ckan.org/api/3/action/package_show?id=adur_district_spending]]
のような [[URL]] で特定の[[パッケージ]]の情報を取得できます。
[SRC[>>15]]
[17]
[CODE[3]]
は[[版番号]]を表しますが、省略できます。つまり
[CODE[http://demo.ckan.org/api/action/package_list]]
でもアクセスできます。
普通はこれで十分です。
[10]
表示用のページは [CODE[body]] [[要素]]に
[CODE[data-site-root]]
属性があって、トップページの[[絶対URL]]
が入っています。
これに [CODE[/api/]] 以下をつなげると [[API]] の [[URL]] になります。
[11]
多くのサイトは
[CODE[data-site-root]]
が[[サーバー]]の
[CODE[/]]
になっていますが、そうでない下位の[[ディレクトリー]]に割り当てられているケースもしばしば遭遇します。
[12]
また、
[CODE[data-site-root]]
の後に
[CODE[ja/]]
のように[[言語]]を指定した[[ディレクトリー]]が続く [[URL]] でもアクセス可能です。
この場合のトップページは [CODE[body]] [[要素]]の
[CODE[data-locale-root]]
[[属性]]の [[URL]] になります。
[[API]] はこちらの [[URL]] を使ってもアクセスできますが、
[[言語]]がない場合と(おそらく)同じ[[応答]]を返していると思われます。
** 発見
- [4] [CITE@ja[データセット - 公共交通オープンデータセンター データカタログサイト]], [TIME[2024-04-21T09:09:50.000Z]] <https://ckan.odpt.org/dataset>
[5] >>4 このサイトは
<https://ckan.odpt.org/api/>
以下がすべて[[リダイレクト]]になっています。
意図的に潰されているように感じられます。
[6]
>>4 このサイトはそもそも [[CKAN]] の仕組みをほとんど使っておらず、
データファイルのある [[URL]] を説明文に書いています
(大部分はアクセスが要申請で、ライセンスも非 [[OSS]])。
** プロトコル
[14]
未だに[[素のHTTP]]のみを使ってアクセスできるサーバーが稼働しているので注意が必要です。
[SEE[ [[CKAN]] ]]
[24]
[[非保安輸送路]]経由で取得した情報は、通常の[[保安輸送路]]経由の情報と区別して、信頼できない情報として取り扱う必要があります。
[25]
[[API]] が[[HTTPS]]
でも、
[[API]] 経由で取得した [[URL]] が [CODE[http:]] [[URL]] のこともあり、注意が必要です。
[SEE[ [[CKAN資源]] ]]
* 応答
[18]
正常な場合 [[HTTP]] [CODE[200]] [[応答]]で [[JSON]] データが返されます。
[SRC[>>15]]
[19]
[[JSON]] は[[オブジェクト]]で、次の値を持ちます。
[FIG(list members)[
:[F[[CODE[success]]]]: 成功した場合は [CODE[true]] となります。 [SRC[>>15]]
:[F[[CODE[result]]]]: 結果になります。 [SRC[>>15]]
:[F[[CODE[help]]]]:
説明ページの [[URL]] です。
実際のサーバーの応答を見ると、
外部からはアクセスできない内部的な[[URL]]になっていることがしばしばあります。
[[逆プロキシ]]など実際のネットワーク構成が設定に反映されていないのでしょう。
そのまま放置されているのは、誰も使っていない (し何に使うのかもよくわからないのでどうでもいい)
ということなのでしょう。
]FIG]
* エンドポイント
** [CODE[package_list]]
[21] [CODE[package_list]] には [CODE[offset]], [CODE[limit]] を指定できます。
どちらも整数です。どちらも省略可能です。
[SRC[>>20]]
** [CODE[package_show]]
[23] [CODE[package_show]] には [CODE[id]] を指定します。
[[データ集合]]の ID または名前を表します。
[SRC[>>20]]
* パッケージ
[2] 今の [[CKAN]] は [[dataset]] ([[データ集合]]) と呼んでいるものが、
[[API]] では [[package]] ([[パッケージ]]) と呼ばれています。
[SEE[ [[CKANパッケージ]] ]]
* 他の実装
[7]
[CITE[[[データカタログ横断検索システム]]]]
は
[[CKAN API]]
の一部と互換性のある独自の実装をしています。
[SRC[>>8]]
表示ページの [[URL]] と [[API]] の [[URL]] の [[path][URL path]]
の関係性が本家 [[CKAN]] とは少し違います。
[9]
ほとんど同じなのに [[URL]] が微妙に違うのが使いづらいよねえ。
なんでこんなのにしたんだろ?
それとも昔は [[CKAN API]] もそうだったのかな、そうだとしたら [[CKAN]]
が邪悪ってことになるけど。どっちだろ?
[REFS[
- [8]
[CITE[[[データカタログ横断検索システム]] - データカタログ横断システム]], [TIME[2024-04-27T03:37:59.000Z]] <https://search.ckan.jp/api>
]REFS]
* メモ