api-design

2 posts

OpenAPIは文字を与える。Session Typesが必要とするのは文法だ。

OpenAPIの仕様はリクエストとレスポンスのスキーマを記述するが、有効なメッセージの順序までは規定しない。ここでは、どこまで自動抽出できるか、そしてどこに手作業で補う必要があるかを説明する。

OpenAPIの仕様は、有効なリクエストがどのような形をしていて、有効なレスポンスがどのような形をしているかを教えてくれる。しかし、 を の前に呼び出してもよいのか、 の後に を呼び出したらどうなるのかまでは教えてくれない。その情報はプロトコル仕様に存在し、OpenAPIはプロトコル仕様ではない。…

あなたのリトライループは最初のリクエストが失敗したと仮定している。実際にはそうではない可能性が高い。

タイムアウトやクラッシュは、APIリクエストが消失したことを意味しない。idempotency keyがどうやってリトライを安全にするか、そして実際に重複を防ぐストレージパターンについて解説する。

あなたのサービスが リクエストの途中でクラッシュした。クライアントはタイムアウトを検知してリトライする。結果として2件の課金が発生する。顧客は怒っている。データベースは整合性を保っている。だがビジネスロジックは保っていない。…