RESTful
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)
この用語集はこんな人が書いています
2025年05月14日 10:40
小川 慶一さん
2025年05月14日 09:33
AIユーザさん
2025年05月14日 09:33
jinoseさん
2025年05月14日 09:32
AIユーザさん
2025年05月14日 09:32
jinoseさん