第3回まで無料

API 設計入門コース

API が何を約束するものかという話から、URL とステータスコードの決め方・エラー表現の統一・冪等性とリトライ・レート制限・OpenAPI・GraphQL、そして版を切って古い版を畳むところまで。全30レッスンで「フレームワークが変わっても通じる設計の物差し」を持てるところまで進みます。リクエストとレスポンスは、Node.js 26.9 の標準ライブラリだけで書いたサーバーを実際に立てて curl で取ったものを載せています。

カリキュラム

全30レッスンを6つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ サーバーを立てる回はブラウザ内で実行できないため、手元の Node.js と curl で試してください。設計の判断だけを確かめる短いコードは、ブラウザ上でそのまま実行できます。

Chapter 1 — API は何を約束するのか(第1〜5回)

内部の実装と、外に出した約束は別物だという線を引きます。HTTP を設計の道具として読み直し、最後はメソッドの安全性と冪等性を手元の curl で確かめます。

Chapter 2 — リソースの設計(第6〜12回)

URL の切り方、ステータスコードの選び方、一覧の返し方を決めます。最後はページング・絞り込み・並べ替えを、実際に動くサーバーの応答で見比べます。

6

URL はリソースの名前 — 動詞を入れない

URL に動詞を書きたくなる場面を、名詞に置き換える手順で潰す。末尾スラッシュ・大文字・ゼロ埋めなど、同じものに複数の名前が付く事故も実測で確かめる。

🔒 ベーシック
7

コレクションと個別リソース、階層をどこで止めるか

一覧と個別の 2 種類だけで設計を組み立てる。ネストは「所有」に限り、2 階層で止めるという線の引き方を、URL の増え方で説明する。

🔒 ベーシック
8

CRUD に収まらない操作をどう表すか

アーカイブ・送信・承認のような「動詞」を、状態の更新・出来事の資源化・非同期の受け付けの 3 通りで表す。同じ操作を 3 通り実装して応答を見比べる。

🔒 ベーシック
9

2xx の選び方 — 200・201・202・204

成功にも 4 通りある。作ったときの Location、すぐ終わらない仕事の 202、本文を返さない 204 を、実際の応答ヘッダで見分ける。

🔒 ベーシック
10

4xx と 5xx の選び方

400・401・403・404・405・409・415・422・429 を、誰が何を直せばよいかで仕分ける。取り違えると再送の判断とセキュリティが壊れる。

🔒 ベーシック
11

ページング — オフセットとカーソル

offset で切ると、ページの間にデータが増えたときに何が起きるか。同じデータでカーソル方式と比べ、Link ヘッダと next の返し方まで決める。

🔒 ベーシック
12

絞り込み・並べ替え・項目の間引き

クエリパラメータの決め方を、実際に動く一覧 API で試す。fields で項目を減らす仕組みと、フィルタを増やしすぎないための線引きまで。

🔒 ベーシック

Chapter 3 — エラーと信頼性(第13〜18回)

エラーの形をひとつに揃え、再送・冪等性・レート制限・期限まで、落ちる前提の設計を入れます。最後は 1 回の呼び出し全体に期限を張る書き方まで進みます。

Chapter 4 — 仕様を書く(第19〜23回)

頭の中の設計を OpenAPI に落とし、そこから型・モック・テストを起こします。最後は仕様と実装のずれを CI で機械に見つけさせます。

Chapter 5 — GraphQL という別の答え(第24〜27回)

スキーマ・解決・N+1・エラーの返り方を、実際に動かして REST と並べます。最後は「どちらを選ぶか」を判断できる材料まで持ち帰ります。

Chapter 6 — 育てる、そして畳む(第28〜30回)

版の切り方と、古い版を畳むまでの段取りを決めます。最後はドキュメントと変更履歴を仕様から自動で起こし、手で写さない形にします。

全30レッスンを終えたら、次は設計した API を実際に組み上げる FastAPI へ。メンバーシップで全コースが解放されます。