「RESTful」の版間の差分

編集の要約なし
編集の要約なし
1行目: 1行目:
'''RESTful'''とは、[[Webサービス]]の設計方法のひとつである「REpresentational State Transfer([[REST]])に則り作られたもの(ful)という意味です。
'''RESTful'''とは、[[Webサービス]]の設計方法のひとつである「REpresentational State Transfer([[REST]])」に則り、作られたもの(ful)という意味です。


RESTfulなWebサービスは、[[HTTPプロトコル]]を使用して[[データ]]を転送する[[API]]であり、Webアプリケーションの開発でよく使用されます。
RESTfulなWebサービスは[[HTTPプロトコル]]を使用して[[データ]]を転送する[[API]]であり、[[Webアプリケーション]]の開発でよく使用されます。


RESTfulなWebサービスは、以下の原則に従って設計されます:
RESTfulなWebサービスは、以下の原則に従って設計されます。
これらの原則に従って設計されたRESTfulなWebサービスは、柔軟性があり、拡張性が高く、シンプルで理解しやすいインターフェースを提供することができます。
 
; リソースの識別
各リソースは[[URI]]で一意に識別されます。ここでいうリソースとは[[SQL]]でいう「レコード」に相当するものです。
 
; リソースの操作
[[HTTPメソッド]](GET、POST、PUT、DELETE)を使用してリソースに対する操作を定義します。
この操作は[[SQL]]でいう「[[CRUD]](CREATE,READ,UPDATE,DELTE)」に相当するものです。


# リソースの識別:各リソースはURIで一意に識別されます。ここでいうリソースとは[[SQL]]でいう「レコード」に相当するものです。
; メッセージの自己完結性
# リソースの操作:[[HTTPメソッド]](GET、POST、PUT、DELETE)を使用して、リソースに対する操作を定義します。この操作は[[SQL]]でいう「[[CRUD]]」に相当するものです。
各メッセージは必要な情報をすべて含んでいるためセッション状態を持ちません。
# メッセージの自己完結性:各メッセージは必要な情報をすべて含んでいるためセッション状態を持ちません。
# [[ハイパーリンク]]の使用:リソース間のリンクを使用して関連するリソースに簡単にアクセスできるようにします。[[SQL]]でいう「リレーション」を表現する場合は他テーブルのユニークIDを保持することが多いですが、RESTでは別リソースへのリンク(URI)で表現するのでリソース名(テーブル名)まで一目瞭然です。


これらの原則に従って設計されたRESTfulなWebサービスは、柔軟性があり、拡張性が高く、シンプルで理解しやすいインターフェースを提供することができます。
; ハイパーリンクの使用
リソース間の関連性は[[ハイパーリンク]]を使用して簡単にアクセスできるようにします。
一般的な[[データベース]]では「リレーション」を表現するのに関連するレコードのユニークIDを保持することが多いですが、RESTでは一歩踏み込んで別リソースへの[[ハイパーリンク]]まで作り上げて[[データ]]を返してあげます。