.NET UY Meetup 5 - REST in peace with Web API by Fabian Alves
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 463 views

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

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

Statistics

Views

Total Views
463
Views on SlideShare
462
Embed Views
1

Actions

Likes
0
Downloads
4
Comments
0

1 Embed 1

http://meem.greyshare.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

.NET UY Meetup 5 - REST in peace with Web API by Fabian Alves Presentation 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”