気になったので調べてみた。
HttpStatusCode 429 TooManyRequest
https://tools.ietf.org/html/rfc6585#section-4
2012年くらいに作られた定義。アクセス過多などによりレート制限がかかった場合のステータス。
400代は基本的にノーリトライだと考えてたけど、これのおかげで単純に400台をノーリトライとすることができない嫌なやつ。
実は.NETのHttpStatusCodeには429の定義がない。
正確には.NETCore2.1にはあって.NET Framework、mono、.NET Standardにはない。
「じゃあ、HttpClientとかでStatusCode受け取れないじゃん」
と思うのだけど、
結果からいうと429扱える。 C#のenumの特性を勘違いしてた。
429を返すAPIにアクセスした時のWatch
普段はenumの名前で表示される部分が数字になってる。
じゃあどうやって扱えるかというと
これで良い。
C#のenumってこんなこと出来るんですね。試したこともなかったので知らなかったです。
まぁ普通に考えて故意にはやらないのだけど、設計などで応用というか幅を広げられるかも。