fox icon indicating copy to clipboard operation
fox copied to clipboard

Router support to POST, PUT, PATCH, DELETE and others.

Open joubertredrat opened this issue 9 years ago • 2 comments

Today dynamic router support only GET requests, then, I think that is good idea to support other rest request types.

For now, I think that is good to suport GET, POST, PUT, DELETE, OPTIONS, LINK, UNLINK and for future, support to HEAD, TRACE and CONNECT.

Reference: http://www.restapitutorial.com/lessons/httpmethods.html

joubertredrat avatar Aug 08 '16 12:08 joubertredrat

I have a possible conception to solve this.

Is possible to use request type as a namespace part, then will be possible do redirect to controller in accordance with the request as example below.

request = POST /user
request => router [  $Controller = new \Fox\Controller\Post\User()  ] => view

request = GET /user/login
request => router [  $Controller = new \Fox\Controller\Get\User()  ] => view

request = PUT /user/{id}
request => router [  $Controller = new \Fox\Controller\Put\User()  ] => view

request = DELETE /user/{id}
request => router [  $Controller = new \Fox\Controller\Delete\User()  ] => view

joubertredrat avatar Aug 09 '16 11:08 joubertredrat

Other option is inverted class and request type, then is more easy to group and manage, as example below:

request = POST /user
request => router [ $Controller = new \Fox\Controller\User\Post(); ] => view

request = GET /user/login
request => router [ $Controller = new \Fox\Controller\User\Get(); $Controller->login(); ] => view

request = PUT /user/{id}
request => router [ $Controller = new \Fox\Controller\User\Put(id); ] => view

request = DELETE /user/{id}
request => router [ $Controller = new \Fox\Controller\User\Delete(id); ] => view

joubertredrat avatar Aug 10 '16 11:08 joubertredrat