🙄

Web API The Good Partsを読んでAPIとはを再確認する ~番外編: どの方法データを渡すか~

2025/01/24に公開

概要

Web API The Good Partsを読んでAPIとはを再確認していた時に、ふと思った
「改めて言われてみると、サーバーサイドにデータを渡す方法ってどんなふうに使い分けているんだっけ」
と思い、ここにまとめてみることにした

データの渡し方について

主に下記の三つが、サーバーサイドにデータを渡す方法になる

  1. クエリパラメータ
  2. パスパラメータ
  3. リクエストボディ

各データの渡し方の概要とどのような時に使うか

パスパラメータ

実行方法

GET /users/:id

idをURLの一部として動的に組み込みデータを送信する

どのような時に使うか?

IDで一意のアイテムを指定するときに使用するイメージ
特定のアイテムの取得・更新・削除などに使われる

クエリパラメータ

実行方法

GET /users?status=active&age_min=30

key=valueの形でデータを送信する

どのような時に使うか?

ある特定の条件で複数あるデータを絞り取得したい時などに使う
SQLでイメージするとwhere句のイメージ
フィルタリングやページネーションなどに使われる

リクエストボディ

実行方法

POST /users
Content-Type: application/json

{
  "name": "John Doe",
  "email": "john.doe@example.com"
}

リクエストボディにJSONやXML形式のデータを挿入し、データを送信する

どのような時に使うか?

POST、PUT、PATCH、DELETEなどのリクエストでよく使われる
ID指定などではなく複雑な条件で削除する場合はこちらが使われるイメージ

結論

ちゃんと使いわけの線引きはこうやってみるとあるんだなあと
もうPOSTでリクエストボディに適当に詰めておけばいいでしょ・・・みたいなこと考えちゃう時ありますが、APIの設計をミスると痛手になることは重々承知なのでしっかり考えながら設計していかなきゃですね🫠(そういえばリクエストヘッダで送るパターンも認証系だとありましたね🙏)

Discussion