1 / 37

RESTful Services ‘a la carte ’

RESTful Services ‘a la carte ’. Gustavo Javier Machado Arquitecto Tellago Inc . gustavo.machado@tellago.com http://thegsharp.wordpress.com. Agenda. REST REST & Microsoft WCF WebHttp WCF DataServices MVC 2 Cuando usar que ?. REST. ¿Porque REST?.

mary
Download Presentation

RESTful Services ‘a la carte ’

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RESTfulServices ‘a la carte’ Gustavo Javier Machado Arquitecto Tellago Inc. gustavo.machado@tellago.com http://thegsharp.wordpress.com

  2. Agenda • REST • REST & Microsoft • WCF WebHttp • WCF DataServices • MVC 2 • Cuandousarque?

  3. REST

  4. ¿Porque REST? • Representational StateTransfer. • Estilo de arquitectura. • Mejor usode HTTP. • Menor complejidad. • Mayor interoperabilidad. ¿Que significa? ¿Que es? ¿Por qué rest?

  5. REST - Principios • Identificar recursos con Uris • Utilizar verbos de http • Conectar recursos utilizando links • Presentar en multiples formatos (XML,json,etc) • Comunicación stateless

  6. REST – Principio 1 “Los recursos son identificadosmediante Uris” Ejemplos: http://miservicio/Salas Podria ser la Uri paraacceder a la lista de salas de un edificio. http://miservicio/Salas/3 Podria ser la Uri paraacceder a la representacion de la Salanumero 3. http://miservicio/Colores/rojo Podria ser la Uri paraacceder al color rojo. http://miservicio/Transaccion/1145001 En un serviciounatransaccionpuede ser considerada un recurso. En este caso estamos referenciando a la transaccion 1145001.

  7. REST – Principio 2 “Utilizar verbos de HTTP” • GET: Retorna la representacion del recurso. • PUT: Actualiza el estado de un recurso. • POST: Crea un nuevorecurso. • DELETE: Borra un recurso.

  8. REST – Principio 3 “Conectar recursos utilizando links” <order self=’http://example.com/orders/1234’> <amount>23</amount> <product ref=’http://example.com/products/4554’ /> <customer ref=’http://example.com/customers/1234’ /> </order>

  9. REST – Principio 4 “Presentar en multiples formatos” GET /accounts('UBS') Host: restsamples.com Accept: application/atom+xml … GET /accounts('UBS') Host: restsamples.com Accept: application/json …

  10. REST – Principio 5 “Comunicacion stateless” GET /accounts('ubs') Host: restsamples.com Accept: application/account+xml <account><contact ref="/contacts('ubs-12345')">...</contact></account> … GET /contacts('ubs-12345') Host: restsamples.com Accept: application/contact+xml <contact id="ubs-12345">...</contact>

  11. RESTfulness SOAPers vs RESTafaris RESTafaris

  12. Microsoft & REST

  13. Microsoft y REST

  14. Microsoft y REST WCF WebHttp Public class Service: IContract { [WebGet] Type Operation1(parameters….); . . . [WebInvoke] Type Operationn(parameters….); } XML JSON Atom

  15. Microsoft y REST WCF DataServicesnosdioOData Public class MyContext : IUpdatable { IQueryable<T1> field1; . . . IQueryable<Tn> fieldn; } ODATA AtomP JSON

  16. Microsoft y REST Y no nosolvidemos de ASP .NET MVC Public class Service : Controller { ActionResult Action1(parameters…); . . . ActionResultActionn(parameters…); XML JSON Atom

  17. WCF WebHttp

  18. WCF Webhttp • Programming Model de WCF quenosbrinda mayor control sobre Uri, formatos y protocolos a la hora de desarrollarservicios HTTP quepueden ser REST o no.

  19. WCF Webhttp En .NET 3.5 • Podemosencontrarlasclases en System.ServiceModel.Web. • Para desarrollarclientes de servicios REST podemosrecurrir al WCF REST Starter Kit. • Debemosbajar el WCF REST Starter kit (CODEPLEX). • UtilizamosMicrosoft.Http y Microsoft.Http.Extensions. En .NET 4.0

  20. Hello world! El request… (GET) http://miservicio/Greetings/Gustavo El response <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Hello Gustavo</string>

  21. Codigo… • Uri template • Http Verb • Help page • Format • Links • Error codes

  22. Preguntas…

  23. WCF DataServices

  24. WCF Dataservices Si pudiesemosir de nuestrainterfaz a unainterfazmasgenerica… • …Estariamosdefiniendo un protocolo REST propiopara ABMs…

  25. WCF Dataservices … y Si pudiesemosexponer un iqueryable<T> … • …Estariamosdefiniendo un protocolo REST propioconsultas...

  26. WCF Dataservices Public class MyContext : IUpdatable { IQueryable<T1> field1; . . . IQueryable<Tn> fieldn; } ODATA AtomP JSON

  27. WCF Dataservices Public class MyContext : IUpdatable { . }

  28. WCF Dataservices Public class MyContext : IUpdatable { IQueryable<T1> field1; . . . IQueryable<Tn> fieldn; } ODATA AtomP JSON

  29. Codigo… • Custom Container • EF client/servidor • AccessRules • Service Operations

  30. ASP .NET MVC

  31. ASP .NET MVC Public class Service : Controller { ActionResult Action1(parameters…); . . . ActionResultActionn(parameters…); XML JSON Atom

  32. ASP .NET MVC • Web • Uris • Format

  33. Cuando usar cada uno?

  34. Participá del DEMOFEST Los mejores proyectos de las células Microsoft, los grupos de investigación de estudiantes, son seleccionados para participar en el espacio del DEMOFEST. ¡Conocélos!

  35. Necesitamos tu Feedback! • Completá los FORM de avaluación que estarán en nuestra WEB: www.codecamp.com.ar • Necesitamos de tu feedback para mejorar.

  36. © 2008 Microsoft Corporation. Todos los derechosreservados. Microsoft, Windows, Windows Vista y otrosnombres de producto son y pueden ser marcasregistradas y registros en EstadosUnidos y en otrospaíses. La informacióncontenida en el presenteessólopara fines informativos y representa la visión actual de Microsoft Corporation a la fecha de estapresentación. Debido a que Microsoft debe responder a lascambiantescondiciones del mercado, no se debeinterpretarcomo un compromisopor parte de Microsoft, y Microsoft no puedegarantizar la precisión de ningunainformaciónprovistadespués de la fecha de estapresentación. MICROSOFT NO OFRECE GARANTÍA ALGUNA, EXPRESA, IMPLÍCITA O DE LEY, RESPECTO A LA INFORMACIÓN EN ESTA PRESENTACIÓN.

More Related