RESTful

IT 

RESTful (れすとふる)

REST とは、システムの設計思想のひとつ。
Representational State Transfer の略。

RESTful とは、システムの実装がこの設計思想に基づいている様を言う。

webサービスでは、リクエストパスとリクエストメソッドの組み合わせによって、どのコンテンツに対して何をしたいのかが一意に分かるようにすると RESTful と言える。

以下では、forum.pc5bai.com のオンライン講座を例として示す。
「ITセンスがよくなるエクセル講座」という講座は、 id として 9 という数字が割り振られている。

ここで、以下のような機能を実装したいとする。

  • 講座の一覧を取得する
  • 新しい講座を登録する
  • 講座情報を更新する
  • 講座情報を削除する

すると、 RESTful に実装するならば、例えば、以下のようになる。

メソッド: GET
リクエストパス: https://forum.pc5bai.com/lesson/course/

一覧を取得する。

メソッド: POST
リクエストパス: https://forum.pc5bai.com/lesson/course/

このリクエストのリクエストボディに含めた内容で、新しいコンテンツを作る。

メソッド: GET
リクエストパス: https://forum.pc5bai.com/lesson/course/9/

id=9 のコンテンツを取得する。(RESTの項目が表示される)

メソッド: PUT
リクエストパス: https://forum.pc5bai.com/lesson/course/9/

id=9 のコンテンツを、このリクエストのリクエストボディに含めた内容で更新する。(RESTの項目が更新される)

メソッド: PATCH
リクエストパス: https://forum.pc5bai.com/lesson/course/9/

id=9 のコンテンツを、このリクエストのリクエストボディに含めた内容で一部更新する。(RESTの項目が一部更新される)

メソッド: DELETE
リクエストパス: https://forum.pc5bai.com/lesson/course/9/

id=9 のコンテンツを、削除する(RESTの項目が削除される)

上記のとおり、リクエストメソッドとリクエストパスの組み合わせで、何をしたいのかが一意になっている。
このような実装は RESTful であると言える。

注: 念のために書くと、上記のコンテンツパス及びリクエストメソッドの組み合わせで、誰でも所望の動作をサーバに実行させられるわけではない。
所望の動作をサーバに実行させるには、認証及び認可を経なくてはならない。

関連項目:
認可
認証

掲載用語一覧:

TOPへ(新着順に表示できます)

i18n 
アセンブリ言語  (assembly language)
アンスコ 
イテラブル  (iterable)
イテレート  (iterate)
イミュータブル  (immutable)
インスタンス  (instance)
WSGI 
ウェルノウンポート  (well known port)
API 
SQL 
m17n 
MTVフレームワーク  (mtv framework)
MVCフレームワーク  (mvc framework)
l10n 
LTS 
演算子  (operator)
オブジェクト指向プログラミング  (object oriented programming)
仮想環境  (virtual environment)
関心の分離  (separation of concerns)
git 
github 
キャメルケース  (Camel Case)
クッキー  (Cookie)
クライアント  (client)
クラス  (class)
クラスの継承  (class inheritance)
CRUD 
ケバブケース  (kebab case)
高階関数  (high order function)
コンパイラ  (compiler)
サーバ  (server)
CMS 
JSON 
識別子  (identifier)
辞書  (dictionary)
車輪の再発明  (reinventing the wheel)
シリアライズ  (seralize)
スネークケース  (snake case)
セッション  (Session)
多重継承  (multiple inheritance)
dunder 
ディストリビューション  (distribution)
デシリアライズ  (deserialize)
DRY 
認可  (authorization)
認証  (certification)
パスカルケース  (Pascal Case)
ハッシュ  (hash)
バッテリーインクル-デッド  (battery included)
バリデーション  (validation)
引数  (argument)
ビルトイン  (built in)
フレームワーク  (framework)
プロトコル  (protocol)
ポート番号  (port number)
メソッド  (method)
メンバー  (member)
UUID 
ライブラリ  (library)
LAMP 
リクエストメソッド  (request method)
RESTful 
レンダリング  (rendering)

この用語集はこんな人が書いています