APIのリクエストデータ構造について

はじめに

よくAPIの設計をする上で、POST/PUTメソッドのときに Content-Type はなんとなく application/x-www-form-urlencoded か application/json を使っていた。

恥ずかしながらそれぞれの用途をはっきり理解できていなかったので、今回を機にちゃんと調べてみた。備忘録のメモ。

application/x-www-form-urlencoded とは?

・HTMLのForm送信で利用
・body部分に key=value&key=value という形式でデータ格納
・HTMLのフォーム画面で入力した値をAPIでリクエストする際に向いている

application/json とは?

・body部分に JSON形式 でデータを格納
・JSONなのでネストができるなど柔軟なデータ構造が可能
・複雑なデータ構造が必要な場合に向いている

結局どっちがいいの?

APIを呼び出す側の要件に合わせてどっちか選択する感じ。一長一短。

それぞれの特徴は今回で整理できたので、呼び出す側の要件を聞いて、どっちがやりやすいかで選択するとよい、というのが自分の中の結論。

おわりに

今までなんとなくで理解していたことを、ちょっと調べてアウトプットすると正しい理解が深めると改めて認識できた。
スキマ時間でこのようなアウトプットを続けていこうと思う。