プログラミング知識

REST API とは? POST や PUTの時に APIは何を返すように設計したらいいの?

みなさん、こんにちは。どんぶラッコです。

今日は REST API と その戻り値についてお話しします。

REST API とは?

グランくん
グランくん
そもそも REST APIって何?
どんぶラッコ
どんぶラッコ
REST という設計思想を適用したAPIのことだね。 RESTful API なんて言い方もするよ
グランくん
グランくん
なるほど、じゃあRESTという考え方が前提にあるってわけだ
どんぶラッコ
どんぶラッコ
REST とは Representational State Transfer の略語だね。以下の4原則があるよ

REST の 設計原則
  • ステートレス(状態を保持しない)通信であること
  • 情報を操作する命令セットが定義されていること
  • リソースを一意に識別できる”汎用的な構文”であること
  • ハイパーリンクを使って情報や状態を表現すること
どんぶラッコ
どんぶラッコ
例えば、本の一覧を表示したり、本の個別情報を表示したりしたい場合、こんな風にURLを作ったりするよ
どんぶラッコ
どんぶラッコ
/url HTTPメソッド … 役割
で列挙してみるね!

  • /books GET … 本の一覧表示
  • /books POST …. 本の新規作成
  • /books/{id} GET … 本の個別情報表示
  • /books/{id} PUT … 本の個別情報表示
  • /books/{id} DELETE … 本の個別情報削除

グランくん
グランくん
なるほど、 URL が 主語、 HTTPメソッドが動詞のような役割をしているんだね!
どんぶラッコ
どんぶラッコ
その通り! “どこ” に “なに” をする、が明瞭になるので多くの現場で使われています

戻り値はどうしたらいいの?

グランくん
グランくん
REST APIについてはなんとなくわかってきたから実装してみよーっと
グランくん
グランくん
ちなみに、GET の時のレスポンスは 一覧や個別の情報をリターンすればいいってわかるけど、 POST や PUT, DELETE の時はレスポンスデータはなにを返したらいいの?
どんぶラッコ
どんぶラッコ
それは2つの考え方があるよ
どんぶラッコ
どんぶラッコ
まず一つ目は更新したデータを return する という方法。こんな風にデータが直りましたよ、というのを示してあげる方法だね
どんぶラッコ
どんぶラッコ
もう一つが HTTP STATUS で 201 や 204 を返してあげる方法。201 は “情報が作成されたよ!”という意味、204は “通信は成功してるけど戻り値がないよ!”という意味です。
どんぶラッコ
どんぶラッコ
どちらの方針であったとしても DELETE は 204を返しますね。データを削除してしまっていてなにもない状態なので!
グランくん
グランくん
さっきから出てきてる 204 という数字は HTTP レスポンスステータスコードと呼ばれるやつですね!
どんぶラッコ
どんぶラッコ
(知ってたんかい)

No Content についてはこのように定義されています。

ちなみに、POST で 情報を作成した時には HTTP Header の Locationに 作成された URLを含めるとよりベターです。

REST APIの始め方 (データ構成)


疑問の解消につながれば嬉しいです!

ABOUT ME
どんぶラッコ
ECコンサルタント、システムエンジニアを経て、quintet株式会社CTOに就任。普段はNuxt.jsやLaravelを使用しています。

\面白いと思ったら/

記事のシェア & Twitter のフォロー をお願いします!

@proglearn
一緒によく読まれている記事

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です