Formularios y REST (deSymfony2013)

download Formularios y REST (deSymfony2013)

If you can't read please download the document

description

Como ya se puede intuir hablaremos de cómo utilizamos en Bodaclick el potente sistema de formularios de Symfony 2 para mapear las peticiones REST (PUT y POST) de nuestra API (potenciada por FOSRestBundle) al modelo de datos pasando por DataTransformers y el sistema de validación

Transcript of Formularios y REST (deSymfony2013)

  • 1. Formularios y RESTdeSymfony 2013Moiss Gallego

2. deSymfony 2013Formularios y REST 4 / 62 3. @moisesgallegodeSymfony 2013Formularios y RESTgithub.com/mgallego5 / 62 4. deSymfony 2013Formularios y REST 6 / 62 5. deSymfony 2013Formularios y REST Web: symfony-madrid.es Twitter: @symfony_madrid Comunidad G+: Symfony Madrid Youtube: youtube.com/symfonymadrid Lista de correo: groups.google.com/group/symfony_madrid7 / 62 6. deSymfony 2013Formularios y RESTWE WANT YOU!WE WANT YOU! Web: symfony-madrid.es Twitter: @symfony_madrid Comunidad G+: Symfony Madrid Youtube: youtube.com/symfonymadrid Lista de correo: groups.google.com/group/symfony_madrid8 / 62 7. Qu vamos a ver?Breve introduccin a RESTCmo montar uno con Symfony2FOSRestBundleUso de formularios en RESTEjemplos de cdigodeSymfony 2013Formularios y REST 9 / 62 8. Qu es REST?deSymfony 2013Formularios y REST 10 / 62 9. Qu es REST?Architectural Styles and the Design of Network-based Software Architectures and describes a seriesof constraints that exemplify how the webs designemerged utilizing the Hyper Text Transfer Protocol.by Roy Fieldings Doctoral ThesisdeSymfony 2013Formularios y REST 11 / 62 10. Qu es REST? Protocolo cliente/servidor sin estado Operaciones POST, PUT, GET y DELETE Sintaxis universal Hipermedios (HATEOAS)deSymfony 2013Formularios y REST 12 / 62 11. Qu es REST?deSymfony 2013Formularios y REST 13 / 62HATEOAS(Hypermedia as the Engine of Application State){nombre: Moises,apellido: Gallego,..direccion: {calle: falsa,numero: 123,Uri: /api/v1/addesses/1}}Charlie dont code(http://charliedontcode.com/rest/2012/09/27/rest-apis-hateoas.html) 12. REST en Symfony2deSymfony 2013Formularios y RESTEl Mtodo Artesanal14 / 62 13. REST en Symfony2El mtodo ArtesanalREQUESTCreacin de rutas y mtodos apropiados con elRouter de Symfony2Sintaxis Universalmethods:[GET, PUT, POST, DELETE]deSymfony 2013Formularios y REST 15 / 62 14. REST en Symfony2El mtodo ArtesanalEjemplo GETget_resources:path: /api/v1/resourcesdefaults: { _controller: AcmeDemoBundle:Main:getResources }methods: [GET]Ejemplo POSTpost_resources:path: /api/v1/resourcesdefaults: { _controller: AcmeDemoBundle:Main:postResources }methods: [POST]deSymfony 2013Formularios y REST 16 / 62 15. REST en Symfony2El mtodo ArtesanalCONTROLADOR HTTPDeserializacin del RequestManejar cabecerasHTTP Status CodesdeSymfony 2013Formularios y REST 17 / 62 16. REST en Symfony2El mtodo ArtesanalCONTROLADORAdaptamos la peticin que recibimos clienteLgica de negocioManejar erroresCrear una vistaPasar el modelo a la vistadeSymfony 2013Formularios y REST 18 / 62 17. REST en Symfony2El mtodo ArtesanaldeSymfony 2013Formularios y REST 19 / 62 18. REST en Symfony2El mtodo ArtesanaldeSymfony 2013Formularios y REST 20 / 62 19. REST en Symfony2El mtodo ArtesanaldeSymfony 2013Formularios y REST 21 / 62 20. REST en Symfony2El mtodo ArtesanaldeSymfony 2013Formularios y RESTSymfony REST and RADhttp://www.beberlei.de/talks/symfony-rest22 / 62 21. REST en Symfony2deSymfony 2013Formularios y RESTEl camino debaldosas amarillas23 / 62 22. FOSRestBundledeSymfony 2013Formularios y REST 24 / 62 23. FOSRestBundleQu ofrece?Capa de vista con formato agnstico de salidaCargador de rutas adaptadoDecodificacin de peticiones HTTP y Accept HeadersControl de excepciones a travs de cdigos de estado HTTP...deSymfony 2013Formularios y REST 25 / 62 24. FOSRestBundleREQUESTMtodos a travs de anotacionesFOSRestBundleControllerAnnotationsGetFOSRestBundleControllerAnnotationsPostFOSRestBundleControllerAnnotationsPutFOSRestBundleControllerAnnotationsDeletedeSymfony 2013Formularios y REST 26 / 62 25. Ejemplo/*** Lists resources.** @Get("api/v1/public/resource/{id}")*/public function getResourceAction($id){.}deSymfony 2013Formularios y RESTFOSRestBundleREQUESTFOSRestBundleREQUEST27 / 62 26. Decodificacin de peticiones HTTP@ParamFetcher(FOSRestBundleRequestParamFetcher)@QueryParam(FOSRestBundleControllerAnnotationsQueryParam)deSymfony 2013Formularios y RESTFOSRestBundleREQUEST28 / 62 27. Ejemplo ParamFetcher/*** Lists resources.** @param ParamFetcher $paramFetcher*/public function getResourceAction(ParamFetcher $paramFetcher){$page = $paramFetcher->get(page);.}deSymfony 2013Formularios y RESTFOSRestBundleREQUESTFOSRestBundleREQUEST29 / 62 28. Ejemplo QueryParam/*** Lists resources.** @QueryParam(name="page", requirements="d+", default="1",description="Page of the overview.")*/public function getResourceAction($page){.}deSymfony 2013Formularios y RESTFOSRestBundleREQUESTFOSRestBundleREQUEST30 / 62 29. Podemos crear acciones en los controladores del tipogetRecursoAction, postRecursoAction, etc yautomticamente FOSRestBundle genera los mtodosy rutas e incluso crea automticamente los plurales.deSymfony 2013Formularios y RESTFOSRestBundleUn poquito de magia31 / 62 30.