当サイトのOpendata APIの使い方

基本仕様

生のデータを取得する

当サイトでは、Opendata APIとしてAPIを提供していますが、APIを用いることなく、「生の」データも取得することができます。

GraphQLを用いたOpendata APIでは必要なデータのみを取得することができますが、互換性等の観点から生のデータを好まれることもあるかと思います。そのような場合は、以下の手順で取得することができます。

  1. 利用したいオープンデータのページにアクセスします。
  2. ファイルに関する情報・利用時の注意点をよく読み、下にスクロールします。
  3. 「Copy」をクリックすると、掲載されている生データのダウンロードリンクをコピーします。「Download」をクリックすると、掲載されているURLから生データをダウンロードします。
ダウンロード画面
ダウンロード画面

Opendata APIを用いる(推奨)

エンドポイント

GraphQLを用いたOpendata APIは、どのようなデータにアクセスする場合でも、以下の単一のエンドポイントです。JSON形式でデータが返されます。

https://a01sa01to.com/api/opendata/

Opendata APIでの通信

GraphQLの操作では、複数行のJSONを扱うことになります。 そのため、Playground(サイト内リンク) (新しいタブで開く)やその他のGraphQLクライアントを用いて操作することをお勧めします。

このPlaygroundでは、各データのクエリについての説明を見ることができたり、cURLのコードをコピーしたりすることができます。 もちろん、このPlaygroundを用いずに、cURLなどの各種ライブラリを利用することもできます。

Opendata APIには、基本的にPOSTメソッドで通信することになります。 cURLを用いてクエリを送信するには、JSONのペイロードを持つPOSTリクエストを送信してください。形式は、以下の通りです。改行文字は適宜エスケープしてください。また、[YOUR QUERY HERE]の部分については、各ページに掲載されているクエリに置き換えてください。
curl 'https://a01sa01to.com/api/opendata/' -X POST -d '{"query": "[YOUR QUERY HERE]"}'

クエリについて

GraphQLでは、クエリに指定されたデータのみを返します。すなわち、クエリから不要なデータを削除することによって、必要なデータのみ取得することができます。この結果、データ通信量削減などの効果が期待できます。返されるデータについては、各データのページを参照してください。

ページ付けについて

当APIでは、一部のデータにおいて、多くのデータを複数のページに分けて返す、「ページ付け(Pagination)」機能をサポートしています。

ページ付け機能は、以下の4つの引数のいずれかを指定して利用します。基本的には、[before]と[last]を組み合わせるか、[first]と[after]を組み合わせて利用します。
  • before : 指定されたcursorよりも前のデータを返す(cursorのデータは含まれない)
  • after : 指定されたcursorよりも後のデータを返す(cursorのデータは含まれない)
  • first : 前から数えて、指定された数のデータを返す
  • last : 後ろから数えて、指定された数のデータを返す
cursorは、データのpageinfoから取得できます。pageinfoで得られるデータは、以下の通りです。
  • hasPreviousPage : 前のページがあるかどうか
  • hasNextPage : 次のページがあるかどうか
  • startCursor : 現在表示しているページの先頭のデータのcursor
  • endCursor : 現在表示しているページの最後のデータのcursor

対応する各データのクエリにおいて、[PAGINATION INFO]と記述されている部分があるかと思います。その部分を、以下のように書いてください。ただし、利用しない引数を削除したり、[CURSOR]や[NUMBER]の部分を置き換えるなど、適宜変更してください。
([PAGINATION INFO])
(before: [CURSOR], after: [CURSOR], first: [NUMBER], last: [NUMBER])
ページ付けの機能が必要なく、すべてのデータを一括で取得する場合は、([PAGINATION INFO])の部分をすべて削除してください。

ページ付け機能のイメージ

ページ付け機能のイメージ01
全体に15個のデータがある場合を考えます
1 / 8

ページ付け機能の主な利用法

ページ付け機能の主な利用法01
全体に15個のデータがある場合を考えます
1 / 9