0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RESTとは

Posted at

RESTとは?

RESTとは、Webアプリケーションを開発する際の設計思想のこと。
クライアント・サーバ間の通信が効率的で一貫性のあるものとなることを目的とする。

Webアプリケーションでは、サーバ側がDBなどから取得した情報をリソースとしてWeb上に用意するが、そのリソースに対してどのように操作するかについてのガイドラインを定めたものがRESTである。

代表的なRESTのガイドライン

■ URIでリソースを識別する

Web上に配置するリソースには、一意に識別できるURIを割り当てる。
Webにおける、データの住所みたいなもの。
例えば /users/1 は「IDが1のユーザ」を表す。

■ HTTPメソッドでリソースを操作する

URIで特定したリソースに対する操作をHTTPメソッドで使い分ける。

HTTPメソッド 用途
GET 取得
POST 新規登録
PUT 更新
DELETE 削除

■ レスポンスボディに適切なデータ形式を使用

サーバから取得するデータはレスポンスボディに記述されるが、このレスポンスボディのデータ形式は、視認性の高いJSONやXML形式を使用する。

レスポンスボディのデータ形式はクライアント側で指定できる。
(JSONの場合は、HTTPリクエストの「Acceptヘッダ」に「application/json」と指定する)

■ リクエストボディに適切なデータ形式を使用

リクエストのデータ形式も、クライアント側で決めることができる。
(JSONの場合は、HTTPリクエストの「Content-Typeヘッダ」に「application/json」と指定する)

■ ステータスコードの活用

リクエストに対する処置の結果を表すステータスコードを活用する。

ステータスコード 意味
200(OK) 処理が正常に行われた
400(Bad Request) リクエストに不備がある
403(Forbidden) 認証されたが権限不足
404(Not Found) リソースが存在しない
405(Method Not Allowed) 対応していないメソッドを使用
500(Internal Server Error) サーバ側でエラー発生

■ サーバ側をステートレスにする

サーバ側は各リクエストを独立したものとして扱い、過去のやり取りを記憶しない。
つまり、セッションを使用しない。
アプリケーションの状態はクライアント側(JavaScript)で管理する。

【補足】サーバ側をステートレスにする理由

スケールアウトに対応するため。
サーバがステートフルだと、サーバマシンの台数を増やした際に困難が生じる。
リクエストをステートの存在するサーバへ振り分けたり、サーバ間でステートの共有をしたりする必要が出てくる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?