Motimate:Public API の使用に制限はありますか?
レートリミット
APIは、10分あたり1200リクエストのレート制限で動作する。 つまり、10分以内に送信できるリクエストは1秒間に最大2回までということになる。 この制限は、個々のエンドポイントにカウントされるのではなく、すべてのエンドポイントで共有されることに注意してください。
この制限を超えると、429 Too Many Requests応答が返されます。
現在のレートリミットステータスはRateLimitヘッダーで確認できる。
例
RateLimit:リミット=1200、残り=956、リセット=543
参照 IETFドラフトを参照のこと。
この制限に達する問題がある場合は、リクエストの間に待ち時間を設け、再び制限を下回るようにしてください。
フィルター / パス引数
パス引数を使用したフィルタリングでは、1回の呼び出しにつき50個の引数(ユーザーIDなど)に制限がある。
ページネーション
1ページあたりの最大検索結果は50件です。 追加の結果を取得するには、pageと per_pageクエリ・パラメータを使用します。
例
/users?page=3&per_page=30
ページネーション制限のあるAPIからすべてのデータを取得するには?
注:この例ではGET /groupsを使用しているが、他のエンドポイントでも手順を繰り返すことができる。
-
-
すべてのデータを取得する:
for i in {1..NUMBER_OF_PAGES}; do curl -X GET "https://motimateapp.com/public_api/groups?page=$i" done - データをマシンに保存する。
-
最後のフェッチ以降(例えば1日前)に更新または作成されたリソースのみをフェッチし、すでに持っているデータにマージする:
curl -X GET "https://motimateapp.com/public_api/groups?filter[created_at_gt]=<ONE_DAY_AGO>" curl -X GET "https://motimateapp.com/public_api/groups?filter[updated_at_gt]=<ONE_DAY_AGO>" - DELETEリクエストを実行するたびに、コピーからリソースを削除する。
- 定期的に(例えば毎週)、すべてのデータを再度取得し、コピーを更新することによって再同期を実行します。
-
0件のコメント
サインインしてコメントを残してください。