SlideShare una empresa de Scribd logo
1 de 12
Web Api
Preguntas
• WebAPI
• REST
• MVC
• WCF
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
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
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)
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)
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
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
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"}
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>
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.
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”

Más contenido relacionado

Más de .NET UY Meetup

.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup
 
.NET UY Meetup 6 - Xamarin: Desarrollando apps nativas para iOS & Android en ...
.NET UY Meetup 6 - Xamarin: Desarrollando apps nativas para iOS & Android en ....NET UY Meetup 6 - Xamarin: Desarrollando apps nativas para iOS & Android en ...
.NET UY Meetup 6 - Xamarin: Desarrollando apps nativas para iOS & Android en ...
.NET UY Meetup
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup
 

Más de .NET UY Meetup (8)

.NET UY Meetup 7 - CLR Memory by Fabian Alves
.NET UY Meetup 7 - CLR Memory by Fabian Alves.NET UY Meetup 7 - CLR Memory by Fabian Alves
.NET UY Meetup 7 - CLR Memory by Fabian Alves
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
 
.NET UY Meetup 6 - Xamarin: Desarrollando apps nativas para iOS & Android en ...
.NET UY Meetup 6 - Xamarin: Desarrollando apps nativas para iOS & Android en ....NET UY Meetup 6 - Xamarin: Desarrollando apps nativas para iOS & Android en ...
.NET UY Meetup 6 - Xamarin: Desarrollando apps nativas para iOS & Android en ...
 
.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta
.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta
.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
 
.NET UY Meetup 4 - Windows 8: Lecciones Aprendidas by Alvaro Regalado & Leona...
.NET UY Meetup 4 - Windows 8: Lecciones Aprendidas by Alvaro Regalado & Leona....NET UY Meetup 4 - Windows 8: Lecciones Aprendidas by Alvaro Regalado & Leona...
.NET UY Meetup 4 - Windows 8: Lecciones Aprendidas by Alvaro Regalado & Leona...
 
.NET UY Meetup 3 - El Poder de la Visión by Ariel Erlijman
.NET UY Meetup 3 - El Poder de la Visión by Ariel Erlijman.NET UY Meetup 3 - El Poder de la Visión by Ariel Erlijman
.NET UY Meetup 3 - El Poder de la Visión by Ariel Erlijman
 
.NET UY Meetup 3 - Presentaciones Efectivas by Ariel Erlijman
.NET UY Meetup 3 - Presentaciones Efectivas by Ariel Erlijman.NET UY Meetup 3 - Presentaciones Efectivas by Ariel Erlijman
.NET UY Meetup 3 - Presentaciones Efectivas by Ariel Erlijman
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

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

  • 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”