An identifier larger than 2^53 loses precision as a JavaScript number, and BigInt fixes the arithmetic and not the transport. This is the reason well-designed APIs return large…
A generated client removes the hand-written HTTP layer and produces a large amount of code nobody has read, in a style nobody chose. For six endpoints a hand-written…
A document describing what the API accepts and a validator enforcing it are two implementations of one rule, and they diverge in the direction of the code. Validating…
A client that times out and retries has sent the same request twice, and the server cannot tell whether the first one succeeded. Storing the response rather than…
Adding a computed field by filtering the prepared response works and leaves the field undocumented, so nothing but your own client knows it exists. The schema entry puts…
A rate limiter is four lines of Redis and a decision between two algorithms that behave differently at the boundary, and most hand-rolled ones pick the worse of…