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?

More than 1 year has passed since last update.

ResourcefulとRESTful

Last updated at Posted at 2024-01-16

Laravelの学習中、ResourcefulとRESTfulについて触れることがあり、それぞれどういう仕組みなのかを簡単にまとめます。

前提

ResourcefulとRESTfulも、ルーティングの設計パターンに関連する概念である。

Resourceful

Resourcefulなルーティングでは、Route::resource('名前', 'コントローラ名')という形式でルーティングを定義する。これにより、CRUD操作に対応する一連のルート(GET、POST、PUT、DELETE)が自動的に生成される。

## これだけCRUDに対応するルートが自動的に生成される。
Route::resource('books', 'BookController');

RESTful(Representational State Transfer)

Webアプリケーションの設計原則であり、リソースを表現し、HTTPメソッドを使用してそのリソースに対する操作を行う方法を定義する。


ResourcefulもRESTfulも、同じ結果をもたらすことがある。
例えば特定の本を取得する操作を行う場合。

Resourceful
Route::resource('books', 'BookController');
RESTful
Route::get('/books/{id}', 'BookController@show');

特定の本を削除する操作を行う場合。

Resourceful
Route::resource('books', 'BookController');
RESTful
Route::delete('/books/{id}', 'BookController@destroy');

Resourcefulのルート内容はどちらも同じ。


Resourcefulは、Resourcefulのルーティングを使用することで、CRUD操作に対応するルートが自動的に生成される。これにより、コードの量を減らすことができるメリットがある反面、必要としない操作のルートも生成されてしまう。また、特定のルートに制限を加えたい場合や、カスタムのルートを追加したい場合には、手動でルートを定義する必要がある。
RESTfulは、Resourcefulなルーティングよりも柔軟性がある。RESTfulなルーティングを使用する場合、必要なルートを手動で定義する必要があるが、その分、より細かい制御が可能である。

基本的なCRUD操作に対応するルーティングを使用する場合、Resourcefulなルーティングが便利だが、より複雑なルーティングや特定の制約を持つ場合、RESTfulでルートを定義することが適切かもしれない。

※Resourcefulなルーティングは、CRUD操作をシンプルに表現するための手法であり、RESTfulなルーティングは、リソース指向のアーキテクチャスタイルに基づいたルーティングの手法である。
したがって、ResourcefulなルーティングとRESTfulなルーティングは、異なる概念であるため、比較することはできない。それぞれのルーティングスタイルは、プロジェクトの要件や目的に応じて決められる。

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?