えー?
Mastodon のトゥート削除 API って、最新(v3.2.0)だと 1 リクエスト/分(30 分で 30 回まで)に制限されてんの?
その点、Qiitadon は 1 回/秒(5 分で 300 回まで)を許すという太っ腹仕様(v2.3.3)
https://github.com/increments/mastodon/blob/qiitadon/config/initializers/rack_attack.rb#L48-L50
マストドンのバージョンによって API のリクエスト制限って結構変わっているのね。
#mastodon_api #Idempotency_Key
if idempotency_duplicate then 404
----
重複トゥート防止の Idempotency-Key: <UNIQUE ID> ヘッダ。便利。
でも、すでに処理済みの場合は、リクエストすると 404 エラーになる。
普通に正常処理された時に返される JSON を返してくるのが API 的に良いと思うんだども。
issue にもあがってない。
https://github.com/tootsuite/mastodon/issues?utf8=%E2%9C%93&q=idempotency
これは、「その Idempotency Key 付きリクエストの URL は処理済みだから、ないよ」という解釈なのだろうか。
404 ってそういうもの?
暗黙のプロトコルに悩まされるなり
ここ↓で分岐してる気がするけど。ルビがふられてないから読めない(Rubyわからない)
https://github.com/tootsuite/mastodon/blob/master/app/services/post_status_service.rb#L29
#Mastodon_API、いつのまに#重複トゥート防止が付いてた。
https://qiita.com/KEINOS/items/a1f49ad0852f7c33d3d7
トゥート時に Idempotency-Key: <UNIQUE ID> をヘッダに含めると、同じ UNIQUE ID のトゥートは1つだけが投稿されるっぽい。
これでサーバー混雑時の時報 BOT も安定化できそう。