.NET UY Meetup 5 - REST in peace with Web API by Fabian Alves

  • 236 views
Uploaded on

Video: http://youtu.be/PABK-OXg64s …

Video: http://youtu.be/PABK-OXg64s
Fabian Alves: http://www.meetup.com/NET-UY/members/116332642/

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
236
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
5
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Web Api
  • 2. Preguntas • WebAPI • REST • MVC • WCF
  • 3. Que es Web Api • Es un API que permite implementar servicios HTTP • Particularmente se utiliza para servicios web basados en la arquitectura REST • Es una librería .Net que permite implementar servicios RESTful en .Net • MVC es para retornar HTML, trabajar con forms y browsers – WebAPI es para crear servicios y retornar json / xml • Es ideal para integrar dispositivos móviles
  • 4. Que es REST: Representational State Transfer • Es un estilo de arquitectura. • Orientado a recursos (sustantivos) • Utiliza las URIs para identificar recursos y los verbos HTTP para manipularlos • GET, PUT, POST, DELETE • La respuesta es via HTTP response codes estandars • 200 OK, 201 CREATED, 401 UNAUTHORIZED, ETC. • El URI o el mensaje de request no incluye un verbo. • Hypermedia: el request a un recurso devuelve los URIs para acceder o manipular otros recursos
  • 5. RESTful Services • NO es RESTful • http://server/hrapp/getemployee?id=12345 • http://server/hrapp/employee?id=12345&action=GET • http://server/hrapp/employee and the request message determines the action to be carried out. • Implementado con RESTful • • • • • • • http://server/hrapp/employees/12345 HTTP POST crea el employee 12345 HTTP GET obtiene el employee 12345 HTTP PUT modifica el employee 12345 HTTP DELETE borra el employee Los datos vuelven codificados en JSON / XML Los errores se devuelven con status code de HTTP (200 ok, 401 not authorized, 404 not-found, etc)
  • 6. Como crear un Web API • Crear un proyecto MVC4 usando el template Web API • Crear un controlador (controller) • Deriva de ApiController • Agregar acciones a la clase controller • Se puede implementar WebAPI en cualquier tipo de proyecto (console, self-host, etc)
  • 7. Routing en Web API • Se pueden utilizar los nombres de los controladores y de las acciones para routear Web API requests • O también se pueden utilizar atributos para controlar el mapeo de los requests a acciones en los controladores • HttpGet, HttpPut, HttpPost, HttpDelete • AcceptVerbs • ActionName
  • 8. Formatos de respuesta • WebAPI puede devolver JSON o XML • WebAPI permite que el cliente especifique el formato de respuesta en el HTTP header • Se pueden crear “MediaTypeFormatters” para devolver distintos tipos de datos – por ejemplo una imagen
  • 9. JSON • Request Sent POST /api/employees HTTP/1.1 Content-Type: application/json; charset=utf-8 Content-Length: 49 {"Name":"John Q Law", "Department":"Enforcement"} • Response Received HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 {"Department":"Enforcement","Id":"123","Name":"John Q Law"}
  • 10. XML • Request Sent POST /api/employees HTTP/1.1 Content-Type: application/xml; charset=utf-8 Content-Length: 80 <Employee><Name>John Q Law</Name><Department>Enforcement</Department></Employee> • Response Received HTTP/1.1 200 OK Content-Type: application/xml; charset=utf-8 <?xml version="1.0" encoding="utf-8"?><Employee xmlns:xsi=http://www.w3.org/2001/XMLSchemainstance xmlns:xsd="http://www.w3.org/2001/XMLSchema"><Id>123</Id><Name>John Q Law</Name><Department>Enforcement</Department></Employee>
  • 11. WCF vs WebAPI • WCF permite implementar un servicio sin definir el mecanismo de transporte, el formato de los paquetes, el protocolo, etc. • WCF es mas flexible y mas complejo. • WCF soporta HTTP, TCP, Namepipes (comunicación entre procesos), etc. • WebAPI es para implementar HTTP con JSON / XML. • Si solo se va a necesitar HTTP con JSON / XML conviene usar WebAPI. • Si existe la posibilidad de que los servicios se expongan o consuman de otra manera conviene WCF.
  • 12. Mas info Documentación http://www.asp.net/web-api • Fiddler http://fiddler2.com/home • Web API Test Client http://blogs.msdn.com/b/yaohuang1/archive/2012/12/02/adding-asimple-test-client-to-asp-net-web-api-help-page.aspx • Nuget Package “A simple Test Client to ASP.NET Web API”