APIの利用方法

基本的な使い方(全件取得)

作成したAPIには、以下のURLでアクセスできます。

https://api.sssapi.app/<API_ID>

このAPIを呼び出すと、スプレッドシートの全件取得できます。

$ curl -s https://api.sssapi.app/<API_ID> | jq
[
  { "id": 1, "name": "Alice" },
  { "id": 2,  "name": "Bob" }
]

1件取得

A列の値を指定することで、1件だけ取得することも可能です。

https://api.sssapi.app/<API_ID>/<A列の値>

$ curl -s https://api.sssapi.app/<API_ID>/2 | jq
{ "id": 2, "name": "Bob" }

以下のスプレッドシートのAPIの場合、A列のidと一致する行を返します。

AB
idname
1Alice
2Bob

もし、A列に同じ値がある場合は最初の行のみを返します。
指定した値のすべての行を取得したい場合は、フィルター機能を利用ください。

ページネーション

クエリパラメタを指定することでページ分割して取得することができます。

https://api.sssapi.app/<API_ID>?page=2&page_size=2

$ curl -s "https://api.sssapi.app/<API_ID>?page=2&page_size=2" | jq
[
  { "id": 3, "name": "Chris" },
  { "id": 4, "name": "Dave" }
]
param nametypedetails
pagerequireページ数。1以上で指定
page_sizeoptional1ページあたりの件数。デフォルトは10件

また、limit / offsetを利用することも可能です。

https://api.sssapi.app/<API_ID>?limit=2&offset=2

$ curl -s "https://api.sssapi.app/<API_ID>?limit=2&offset=2" | jq
[
  { "id": 3, "name": "Chris" },
  { "id": 4, "name": "Dave" }
]
param nametypedetails
limitoptional取得件数。
offsetoptionalオフセット件数。

フィルタリング

以下の形式のクエリパラメタを指定することでフィルタリングした結果を取得できます。

filter__<FIELD_NAME>__<FILTER_TYPE>

$ curl -s "https://api.sssapi.app/<API_ID>?filter__id__gt=2" | jq
[
  { "id": 3, "name": "Chris" },
  { "id": 4, "name": "Dave" }
]
filter typedetails
exact完全一致
contains部分一致
startswith前方一致
endswith後方一致
gtより大きい(>)
gte以上(>=)
ltより小さい(>)
lte以下(>=)
array_contains配列内の要素に含まれる。
※指定フィールドが配列の場合のみ
$ curl -s "https://api.sssapi.app/<API_ID>?filter__group__array_contains=B" | jq
[
  { "id": 3, "name": "Chris", "group": ["A", "B"] },
  { "id": 4, "name": "Dave" , "group": ["B"] },
]

フィールドが空文字やnullの場合は、値を空にしてAPIを呼び出してください。

$ curl -s "https://api.sssapi.app/<API_ID>?filter__name__exact=" | jq
[
  { "id": 5, "name": null }
]

ソート/並び替え

以下の形式のクエリパラメタを指定することでソートした結果を取得できます。

order_by=<FIELD_NAME>

,区切りで<FIELD_NAME>を複数指定できます。

order_by=<FIELD_NAME>,<FIELD_NAME>

また、降順にしたい場合は、-を先頭に記載してください。

order_by=-<FIELD_NAME>

$ curl -s "https://api.sssapi.app/YOUR_API_ID/?order_by=-id" | jq
[
  { "id": 6, "name": "Frank", "group": ["F"]},
  { "id": 5, "name": "Ellen", "group": ["E", "A"]},
  ...
]