SlideShare a Scribd company logo
1 of 15
Download to read offline
Introducción al Web API
Danae Aguilar Guzmán
MCT, MS, MCTS, MCP
danaeaguilar@gmail.com
Web API
Web API
 Es un framework para construir APIs web
basados en .NET
 Nos permite exponer servicios y datos a
travez de HTTP para consumirlos desde
cualquier cliente
 Nos permite crear aplicaciones RESTful para
llegar a un variado grupo de clientes
Web API
 Requiere .NET Framework 4 para arriba
 Los verbos se mapean con los métodos
 El Web API nos permite alojar los servicios
fuera de IIS. (Self Hosting)
Web API
Self Hosting en una aplicación de consola.
1. Crear una aplicacion de Consola (iniciar
Visual Studio como Administrador)
2. Agregar las referencias:
1. Agregar el Assembly de System.Web
2. Desde Nuget, agregar Web API.
3. Desde Nuget, agregar Web API Self Host:
Web API
3. Definir el URI en el que escuchará el servicio.
4. Configurar el server:
static readonly Uri uri = new Uri("http://localhost:50231/");
HttpSelfHostConfiguration config =
new HttpSelfHostConfiguration(uri);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Web API
5. Crear una instancia del server y escuchar
peticiones.
var server = new HttpSelfHostServer(config);
// Escuchar peticiones
server.OpenAsync().Wait();
Console.WriteLine("Escuchando en " + uri +
" Presione Enter para salir...");
Console.ReadLine();
server.CloseAsync().Wait();
Web API
6. Crear una clase Controller que herede de
ApiController y agregar los métodos
equivalentes a HTTP (Get, Post, Etc.).
7. Ejecutar e invocar al servicio:
http://localhost:50231/api/Saludos
public class SaludosController : ApiController
{
public string Get()
{
return "Hola";
}
}
Web API
Crear un proyecto Web MVC Web API
1. Crer un Proyecto ASP.NET MVC y seleccionar
Web API
Web API
Crear un proyecto Web MVC Web API
2. Agregar Controllers seleccionando alguna
opcion que cree el controller para el API:
Web API
 En el global.asax tendremos:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(
GlobalConfiguration.Configuration);
Web API
 En WebApiConfig esta la definición de
enrutado del servicio:
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional}
);
Web API
 Los contoladores heredan de ApiController y
los métodos representan los verbos HTTP:
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return cadenas;
}
Web API
 Para que el formato de datos JSON este en
Camel Case. Argegamos lo siguiente al
método Register del WebApiConfig:
var jsonFormatter = config.Formatters
.OfType<JsonMediaTypeFormatter>()
.FirstOrDefault();
jsonFormatter.SerializerSettings.ContractResolver =
new CamelCasePropertyNamesContractResolver();
Web API
 Para retornar código de estado y URL de un
nuevo recurso:
public HttpResponseMessage Post([FromBody]string value)
{
cadenas.Add(value);
var response =
Request.CreateResponse<string>
(HttpStatusCode.Created, value);
string uri = Url.Link("DefaultApi",
new { id = cadenas.Count });
response.Headers.Location = new Uri(uri);
return response;
}
Web API
 Retornando errores:
throw new HttpResponseException
(HttpStatusCode.NotFound);

More Related Content

What's hot

Liferay versión 6.1 Trabajando con LDAP, introducción
Liferay versión 6.1  Trabajando con LDAP, introducciónLiferay versión 6.1  Trabajando con LDAP, introducción
Liferay versión 6.1 Trabajando con LDAP, introducción
Ematiz Tecnología, S.L.
 

What's hot (20)

Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Reportes
ReportesReportes
Reportes
 
Liferay versión 6.1 Trabajando con LDAP, introducción
Liferay versión 6.1  Trabajando con LDAP, introducciónLiferay versión 6.1  Trabajando con LDAP, introducción
Liferay versión 6.1 Trabajando con LDAP, introducción
 
Liferay 6.1 Service Builder
Liferay 6.1  Service BuilderLiferay 6.1  Service Builder
Liferay 6.1 Service Builder
 
Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1
 
Webinar: Base de Datos en tiempo real con MeteorJS
Webinar: Base de Datos en tiempo real con MeteorJSWebinar: Base de Datos en tiempo real con MeteorJS
Webinar: Base de Datos en tiempo real con MeteorJS
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page Applications
 
Curso AngularJS - 4. filtros y servicios
Curso AngularJS - 4. filtros y serviciosCurso AngularJS - 4. filtros y servicios
Curso AngularJS - 4. filtros y servicios
 
Curso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresCurso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladores
 
Curso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzadosCurso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzados
 
Curso AngularJS - 5. rutas
Curso AngularJS - 5. rutasCurso AngularJS - 5. rutas
Curso AngularJS - 5. rutas
 
Javascript y AJAX en Wordpress
Javascript y AJAX en WordpressJavascript y AJAX en Wordpress
Javascript y AJAX en Wordpress
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
 
SQL en Visual Studio
SQL en Visual StudioSQL en Visual Studio
SQL en Visual Studio
 
Java Web Lección 02 - JSP
Java Web Lección 02 - JSPJava Web Lección 02 - JSP
Java Web Lección 02 - JSP
 
Web services
Web servicesWeb services
Web services
 
Objetos Implicitos
Objetos Implicitos Objetos Implicitos
Objetos Implicitos
 
Dreamcode: Aplicaciones web noBackend
Dreamcode: Aplicaciones web noBackendDreamcode: Aplicaciones web noBackend
Dreamcode: Aplicaciones web noBackend
 
Presentacion node
Presentacion nodePresentacion node
Presentacion node
 
Servicio web soap en java con net beans
Servicio web soap en java con net beansServicio web soap en java con net beans
Servicio web soap en java con net beans
 

Viewers also liked (6)

patrones de diseño web.
  patrones de diseño web.   patrones de diseño web.
patrones de diseño web.
 
Microsoft Cognitive services
Microsoft Cognitive servicesMicrosoft Cognitive services
Microsoft Cognitive services
 
Azure Active Directory - Identidad en aplicaciones web
Azure Active Directory - Identidad en aplicaciones webAzure Active Directory - Identidad en aplicaciones web
Azure Active Directory - Identidad en aplicaciones web
 
Construye un backend para tus app móviles con con ASP.NET Web Api
Construye un backend para tus app móviles con con ASP.NET Web ApiConstruye un backend para tus app móviles con con ASP.NET Web Api
Construye un backend para tus app móviles con con ASP.NET Web Api
 
Cloudcamp - Azure App Service Web Apps
Cloudcamp - Azure App Service Web AppsCloudcamp - Azure App Service Web Apps
Cloudcamp - Azure App Service Web Apps
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 

Similar to ASP.NET MVC - introduccion al web api

Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)
Diego Vasco
 
Servicios web
Servicios webServicios web
Servicios web
itoomac02
 
Servicios web
Servicios webServicios web
Servicios web
itoomac02
 
SERVIDOR WEB (SERVER 2008 R2)
SERVIDOR WEB (SERVER 2008 R2)SERVIDOR WEB (SERVER 2008 R2)
SERVIDOR WEB (SERVER 2008 R2)
Saul Curitomay
 
Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]
Antonio Torres
 
Framework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redFramework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la red
Antonio Palomares Sender
 

Similar to ASP.NET MVC - introduccion al web api (20)

Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
 
Servicios web
Servicios webServicios web
Servicios web
 
Infraestructura como Código con Azure Resource Manager
Infraestructura como Código con Azure Resource ManagerInfraestructura como Código con Azure Resource Manager
Infraestructura como Código con Azure Resource Manager
 
Servicios web
Servicios webServicios web
Servicios web
 
Integración Continua en Microsoft Azure
Integración Continua en Microsoft AzureIntegración Continua en Microsoft Azure
Integración Continua en Microsoft Azure
 
Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
SERVIDOR WEB (SERVER 2008 R2)
SERVIDOR WEB (SERVER 2008 R2)SERVIDOR WEB (SERVER 2008 R2)
SERVIDOR WEB (SERVER 2008 R2)
 
Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]
 
Framework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redFramework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la red
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
 
Presentacion sobre asp
Presentacion sobre aspPresentacion sobre asp
Presentacion sobre asp
 
Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDB
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernas
 
Introducción a vnext
Introducción a vnextIntroducción a vnext
Introducción a vnext
 
Trabajando con MySQL y PostgreSQL dentro de azure
Trabajando con MySQL y PostgreSQL dentro de azureTrabajando con MySQL y PostgreSQL dentro de azure
Trabajando con MySQL y PostgreSQL dentro de azure
 
Servicios web java, php, perl, google
Servicios web java, php, perl, googleServicios web java, php, perl, google
Servicios web java, php, perl, google
 

More from Danae Aguilar Guzmán

More from Danae Aguilar Guzmán (20)

Microsoft HoloLens
Microsoft HoloLensMicrosoft HoloLens
Microsoft HoloLens
 
WPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaWPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralela
 
WPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosWPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datos
 
WPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaWPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimedia
 
WPF 06 - personalizando los controles de interfaz de usuario
WPF 06 -  personalizando los controles de interfaz de usuarioWPF 06 -  personalizando los controles de interfaz de usuario
WPF 06 - personalizando los controles de interfaz de usuario
 
WPF 05 - triggers y eventos
WPF 05 - triggers y eventosWPF 05 - triggers y eventos
WPF 05 - triggers y eventos
 
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
WPF 04 -  reutilizando recursos y estilos en una aplicación WPF WPF 04 -  reutilizando recursos y estilos en una aplicación WPF
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
 
WPF 03 - controles WPF
WPF 03 - controles WPF WPF 03 - controles WPF
WPF 03 - controles WPF
 
WPF 02 - construyendo una interfaz de usuario
WPF 02  - construyendo una interfaz de usuarioWPF 02  - construyendo una interfaz de usuario
WPF 02 - construyendo una interfaz de usuario
 
WPF 01 - introducción
WPF 01 -  introducciónWPF 01 -  introducción
WPF 01 - introducción
 
ASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minification
 
ASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacion
 
Crecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareCrecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de software
 
10. consumiendo datos
10. consumiendo datos10. consumiendo datos
10. consumiendo datos
 
09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables
 
08. Propiedades de estilo HTML box
08. Propiedades de estilo HTML box08. Propiedades de estilo HTML box
08. Propiedades de estilo HTML box
 
07. Usando CSS3
07. Usando CSS307. Usando CSS3
07. Usando CSS3
 
06. Creando un proceso web worker
06. Creando un proceso web worker 06. Creando un proceso web worker
06. Creando un proceso web worker
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos
 
04. Implementando APIs HTML5
04. Implementando APIs HTML5 04. Implementando APIs HTML5
04. Implementando APIs HTML5
 

ASP.NET MVC - introduccion al web api

  • 1. Introducción al Web API Danae Aguilar Guzmán MCT, MS, MCTS, MCP danaeaguilar@gmail.com
  • 2. Web API Web API  Es un framework para construir APIs web basados en .NET  Nos permite exponer servicios y datos a travez de HTTP para consumirlos desde cualquier cliente  Nos permite crear aplicaciones RESTful para llegar a un variado grupo de clientes
  • 3. Web API  Requiere .NET Framework 4 para arriba  Los verbos se mapean con los métodos  El Web API nos permite alojar los servicios fuera de IIS. (Self Hosting)
  • 4. Web API Self Hosting en una aplicación de consola. 1. Crear una aplicacion de Consola (iniciar Visual Studio como Administrador) 2. Agregar las referencias: 1. Agregar el Assembly de System.Web 2. Desde Nuget, agregar Web API. 3. Desde Nuget, agregar Web API Self Host:
  • 5. Web API 3. Definir el URI en el que escuchará el servicio. 4. Configurar el server: static readonly Uri uri = new Uri("http://localhost:50231/"); HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(uri); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );
  • 6. Web API 5. Crear una instancia del server y escuchar peticiones. var server = new HttpSelfHostServer(config); // Escuchar peticiones server.OpenAsync().Wait(); Console.WriteLine("Escuchando en " + uri + " Presione Enter para salir..."); Console.ReadLine(); server.CloseAsync().Wait();
  • 7. Web API 6. Crear una clase Controller que herede de ApiController y agregar los métodos equivalentes a HTTP (Get, Post, Etc.). 7. Ejecutar e invocar al servicio: http://localhost:50231/api/Saludos public class SaludosController : ApiController { public string Get() { return "Hola"; } }
  • 8. Web API Crear un proyecto Web MVC Web API 1. Crer un Proyecto ASP.NET MVC y seleccionar Web API
  • 9. Web API Crear un proyecto Web MVC Web API 2. Agregar Controllers seleccionando alguna opcion que cree el controller para el API:
  • 10. Web API  En el global.asax tendremos: protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register( GlobalConfiguration.Configuration);
  • 11. Web API  En WebApiConfig esta la definición de enrutado del servicio: public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional} );
  • 12. Web API  Los contoladores heredan de ApiController y los métodos representan los verbos HTTP: public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return cadenas; }
  • 13. Web API  Para que el formato de datos JSON este en Camel Case. Argegamos lo siguiente al método Register del WebApiConfig: var jsonFormatter = config.Formatters .OfType<JsonMediaTypeFormatter>() .FirstOrDefault(); jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
  • 14. Web API  Para retornar código de estado y URL de un nuevo recurso: public HttpResponseMessage Post([FromBody]string value) { cadenas.Add(value); var response = Request.CreateResponse<string> (HttpStatusCode.Created, value); string uri = Url.Link("DefaultApi", new { id = cadenas.Count }); response.Headers.Location = new Uri(uri); return response; }
  • 15. Web API  Retornando errores: throw new HttpResponseException (HttpStatusCode.NotFound);