SlideShare una empresa de Scribd logo
1 de 24
3º EDICIÓN
Using Refit to consume
Restful web Service in
Xamarin Forms
Leomaris Reyes
Founder Stemelle / Platzi Master Coach
lreyes@stemelle.com
Leomaris Reyes
/leomarisreyes11
/leomarisreyes
/leomarisreyes
www.AskXammy.com
¿Quién soy?
Ing. de Software
Microsoft MVP
Agenda
Introducción / Conceptos básicos
¿Qué es Refit?
01
02
Implementación03
Creando el modelo
Creando la estructura de las interfaces
04
05
Haciendo el Request06
Leomaris Reyes
Conceptos básicos1
Es un servicio mantenible y escalable que
se basa en la arquitectura REST.
Exponiendo el API de su aplicación de
manera segura y uniforme.
¿Qué es un servicio web RestFul?
Es una URL que nos ofrece una ubicación a
la que el cliente puede acceder a los
diferentes recursos proporcionados por el
servicio.
¿Qué es un EndPoint?
¿Qué es REST?
Representational
State Transfer
REST
1
Tipo de arquitectura
para a la construcción
de servicios web
¿Es?
2
Enviar y recibir datos de
un servidor
Uso
2
Son los verbos/Request methods usados:
¿Qué es REST?
Obtiene datos del servidor.
GET
Crea un nuevo elemento en el
servidor web.
POST
Actualiza un elemento del
servidor web.
PUT
Actualiza un elemento del
servidor web, a través de un
conjunto de instrucciones que
definen su modificación.
PATCH
Elimina un elemento
del servidor web.
DELETE
Al consumir servicios web podemos utilizar algunas de estas
opciones:
● Microsoft Http Client
● PortableRest
● RestSharp
● Refit
Antes de empezar con Refit:
¿Qué es Refit?
Open source library
Anais Bets
Consumir servicios
web REST
¿Es?
Creada por
Permite
Convirtiendo un API
REST en una Interfaz
¿Cómo?
1
2
3
4
Código rápido, limpio
y legible
Resultado
5
El Modelo
● Qué es?
● Paso para su creación
● Resultado
En este caso los Modelos son
las entidades y sus
respectivos atributos los
cuales definen nuestro API.
Para crear las clases automáticas asegurate de tener tu
EndPoint a mano:
http://www.apidashboard.somee.com/api/fuels
Paso 1: Creando el Modelo
Edit
Paste Special
Paste JSON as
Classes
Desde Windows Adicionales
● https://json2csharp.com
● https://jsonutils.com
Resultado
Interfaces
● Qué son?
● Estructura
● Resultado
○ Pasándo parámetros
■ Query String
■ Json Content
■ Body Form
Una interfaz contiene
definiciones para un grupo
de funcionalidades
relacionadas que una clase
no abstracta o una
estructura deben
implementar.
Paso 2: Creando la Interfaz
Estructura que
hace posible la
interacción con el
servicio web.
Resultado
Tenemos dos formas de hacerlo:
● Query string
● Body
Pasando parámetros
Query String
Agrega los parámetros en el
método del Request = [Get("/api/fuels?Description={description}")]
1
Dentro del método de interfaz
agrega los parámetros = Task<Fuel>GetFuels(string description);
2
Body
Agrega el atributo [Body]
seguido de la clase que
declaramos en el Modelo.
public interface IFuelsApi
{
[Post("/api/fuels/addFuels")]
Task<Fuel> CreateFuels([Body] Fuels fuels);
}
JSON Content
Seguido al [Body] agrega el
BodySerializationMethod.UrlE
ncoded
public interface IFuelsApi
{
[Post("/api/fuels/addFuels")]
Task<Fuel>CreateFuels([Body(BodySerializationMethod.
UrlEncoded)] Dictionary<string,object> data);
}
Form post
Request
● Qué es?
● Estructura
● implementación
○ Sin parámetros
○ JSON Content
○ Query String
○ Post Forms
El Request nos permite hacer
la comunicación al EndPoint
Paso 3: Creando el Request
Implementando la estructura del Request
async void GetResponse()
{
var apiResponse =
RestService.For<IFuelsApi>("http://www.apidashboard.somee.com");
var fuels = await apiResponse.GetFuels();
}
Sin parámetros
async void GetResponse()
{
var apiResponse =
RestService.For<IFuelsApi>("http://www.apidashboard.somee.com");
var fuels = await apiResponse.GetFuels("Premiun Fuel");
}
Query String
Implementando la estructura del Request
async void GetResponse()
{
var apiResponse =
RestService.For<IFuelsApi>("http://www.apidashboard.somee.com");
var fuels = await apiResponse.GetFuels(New Fuels());
}
Post Form
Leomaris Reyes
Founder Stemelle / Platzi
master Coach
lreyes@stemelle.com

Más contenido relacionado

La actualidad más candente

Mule cloud connectors versus el resto del mundo
Mule cloud connectors versus el resto del mundoMule cloud connectors versus el resto del mundo
Mule cloud connectors versus el resto del mundoManuel Antonio
 
Xamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller XamarinXamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller XamarinJavier Suárez Ruiz
 
Sesión 09: Desarrollo de Apps Web con Bsp en SAP
Sesión 09: Desarrollo de Apps Web con Bsp en SAPSesión 09: Desarrollo de Apps Web con Bsp en SAP
Sesión 09: Desarrollo de Apps Web con Bsp en SAPBiz Partner
 
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & FlexSesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & FlexBiz Partner
 
Interfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsInterfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsJavier Suárez Ruiz
 
Bots más humanos con Alexa
Bots más humanos con AlexaBots más humanos con Alexa
Bots más humanos con AlexaLennin Cenas
 
Microsoft Tech Summit - Taller Xamarin
Microsoft Tech Summit - Taller XamarinMicrosoft Tech Summit - Taller Xamarin
Microsoft Tech Summit - Taller XamarinJavier Suárez Ruiz
 
Desarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con XamarinDesarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con XamarinJavier Suárez Ruiz
 
Frameworks de Javascript Lema-Rosero
Frameworks de Javascript Lema-RoseroFrameworks de Javascript Lema-Rosero
Frameworks de Javascript Lema-RoseroDanielRosero23
 
Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.Germán Küber
 
Trucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.FormsTrucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.FormsJavier Suárez Ruiz
 

La actualidad más candente (19)

Reconnect(); Sevilla - Keynote
Reconnect(); Sevilla - KeynoteReconnect(); Sevilla - Keynote
Reconnect(); Sevilla - Keynote
 
Mule cloud connectors versus el resto del mundo
Mule cloud connectors versus el resto del mundoMule cloud connectors versus el resto del mundo
Mule cloud connectors versus el resto del mundo
 
Extendiendo Xamarin.Forms
Extendiendo Xamarin.FormsExtendiendo Xamarin.Forms
Extendiendo Xamarin.Forms
 
Xamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller XamarinXamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller Xamarin
 
Sesión 09: Desarrollo de Apps Web con Bsp en SAP
Sesión 09: Desarrollo de Apps Web con Bsp en SAPSesión 09: Desarrollo de Apps Web con Bsp en SAP
Sesión 09: Desarrollo de Apps Web con Bsp en SAP
 
dotNetMálaga - Taller Xamarin
dotNetMálaga - Taller XamarindotNetMálaga - Taller Xamarin
dotNetMálaga - Taller Xamarin
 
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & FlexSesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
 
Interfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsInterfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.Forms
 
Desktop App Converter
Desktop App ConverterDesktop App Converter
Desktop App Converter
 
Bots más humanos con Alexa
Bots más humanos con AlexaBots más humanos con Alexa
Bots más humanos con Alexa
 
Microsoft Tech Summit - Taller Xamarin
Microsoft Tech Summit - Taller XamarinMicrosoft Tech Summit - Taller Xamarin
Microsoft Tech Summit - Taller Xamarin
 
Plataformas cliente servidor
Plataformas cliente servidorPlataformas cliente servidor
Plataformas cliente servidor
 
Mvc4 Intro
Mvc4 IntroMvc4 Intro
Mvc4 Intro
 
Xamarin REvolve 2016
Xamarin REvolve 2016Xamarin REvolve 2016
Xamarin REvolve 2016
 
Desarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con XamarinDesarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con Xamarin
 
Frameworks de Javascript Lema-Rosero
Frameworks de Javascript Lema-RoseroFrameworks de Javascript Lema-Rosero
Frameworks de Javascript Lema-Rosero
 
Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.
 
Trucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.FormsTrucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.Forms
 
Xamarin for Everyone
Xamarin for EveryoneXamarin for Everyone
Xamarin for Everyone
 

Similar a Xamarin assemble - Using Refit to consume Restful web service in Xamarin Forms

[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloperEudris Cabrera
 
Servicios web
Servicios webServicios web
Servicios webitoomac02
 
Servicios web
Servicios webServicios web
Servicios webitoomac02
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corporacion de Industrias Tecnologicas S.A.
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsFreelancer
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...Héctor Curbelo Barrios
 
10- Unidad 3: Webservices - 3.2 Uso de Web services (Introducción, Caracterís...
10- Unidad 3: Webservices - 3.2 Uso de Web services (Introducción, Caracterís...10- Unidad 3: Webservices - 3.2 Uso de Web services (Introducción, Caracterís...
10- Unidad 3: Webservices - 3.2 Uso de Web services (Introducción, Caracterís...Luis Fernando Aguas Bucheli
 
Arquitectura de una Apis Rest en C.pptx
Arquitectura de una Apis  Rest en C.pptxArquitectura de una Apis  Rest en C.pptx
Arquitectura de una Apis Rest en C.pptxRonaldoJos15
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxXavierNavia
 
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.pptxLuis775803
 
Estrategias de desarrollo en sharepoint
Estrategias de desarrollo en sharepointEstrategias de desarrollo en sharepoint
Estrategias de desarrollo en sharepointDaniel Laco
 
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineAplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineMario Cortés Flores
 
Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web apiDemian Raschkovan
 

Similar a Xamarin assemble - Using Refit to consume Restful web service in Xamarin Forms (20)

[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
 
5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web
 
10- Unidad 3: Webservices - 3.2 Uso de Web services (Introducción, Caracterís...
10- Unidad 3: Webservices - 3.2 Uso de Web services (Introducción, Caracterís...10- Unidad 3: Webservices - 3.2 Uso de Web services (Introducción, Caracterís...
10- Unidad 3: Webservices - 3.2 Uso de Web services (Introducción, Caracterís...
 
Arquitectura de una Apis Rest en C.pptx
Arquitectura de una Apis  Rest en C.pptxArquitectura de una Apis  Rest en C.pptx
Arquitectura de una Apis Rest en C.pptx
 
Servicios web ITT
Servicios web ITTServicios web ITT
Servicios web ITT
 
Servicios web itt
Servicios web ittServicios web itt
Servicios web itt
 
Servicios web itt
Servicios web ittServicios web itt
Servicios web itt
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
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
 
Estrategias de desarrollo en sharepoint
Estrategias de desarrollo en sharepointEstrategias de desarrollo en sharepoint
Estrategias de desarrollo en sharepoint
 
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineAplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
 
Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web api
 
DAM-S7.pptx
DAM-S7.pptxDAM-S7.pptx
DAM-S7.pptx
 

Xamarin assemble - Using Refit to consume Restful web service in Xamarin Forms

  • 1. 3º EDICIÓN Using Refit to consume Restful web Service in Xamarin Forms
  • 2. Leomaris Reyes Founder Stemelle / Platzi Master Coach lreyes@stemelle.com Leomaris Reyes /leomarisreyes11 /leomarisreyes /leomarisreyes www.AskXammy.com ¿Quién soy? Ing. de Software Microsoft MVP
  • 3. Agenda Introducción / Conceptos básicos ¿Qué es Refit? 01 02 Implementación03 Creando el modelo Creando la estructura de las interfaces 04 05 Haciendo el Request06 Leomaris Reyes
  • 4. Conceptos básicos1 Es un servicio mantenible y escalable que se basa en la arquitectura REST. Exponiendo el API de su aplicación de manera segura y uniforme. ¿Qué es un servicio web RestFul? Es una URL que nos ofrece una ubicación a la que el cliente puede acceder a los diferentes recursos proporcionados por el servicio. ¿Qué es un EndPoint?
  • 5. ¿Qué es REST? Representational State Transfer REST 1 Tipo de arquitectura para a la construcción de servicios web ¿Es? 2 Enviar y recibir datos de un servidor Uso 2
  • 6. Son los verbos/Request methods usados: ¿Qué es REST? Obtiene datos del servidor. GET Crea un nuevo elemento en el servidor web. POST Actualiza un elemento del servidor web. PUT Actualiza un elemento del servidor web, a través de un conjunto de instrucciones que definen su modificación. PATCH Elimina un elemento del servidor web. DELETE
  • 7. Al consumir servicios web podemos utilizar algunas de estas opciones: ● Microsoft Http Client ● PortableRest ● RestSharp ● Refit Antes de empezar con Refit:
  • 8. ¿Qué es Refit? Open source library Anais Bets Consumir servicios web REST ¿Es? Creada por Permite Convirtiendo un API REST en una Interfaz ¿Cómo? 1 2 3 4 Código rápido, limpio y legible Resultado 5
  • 9. El Modelo ● Qué es? ● Paso para su creación ● Resultado
  • 10. En este caso los Modelos son las entidades y sus respectivos atributos los cuales definen nuestro API.
  • 11. Para crear las clases automáticas asegurate de tener tu EndPoint a mano: http://www.apidashboard.somee.com/api/fuels Paso 1: Creando el Modelo Edit Paste Special Paste JSON as Classes Desde Windows Adicionales ● https://json2csharp.com ● https://jsonutils.com
  • 13. Interfaces ● Qué son? ● Estructura ● Resultado ○ Pasándo parámetros ■ Query String ■ Json Content ■ Body Form
  • 14. Una interfaz contiene definiciones para un grupo de funcionalidades relacionadas que una clase no abstracta o una estructura deben implementar.
  • 15. Paso 2: Creando la Interfaz Estructura que hace posible la interacción con el servicio web.
  • 17. Tenemos dos formas de hacerlo: ● Query string ● Body Pasando parámetros Query String Agrega los parámetros en el método del Request = [Get("/api/fuels?Description={description}")] 1 Dentro del método de interfaz agrega los parámetros = Task<Fuel>GetFuels(string description); 2
  • 18. Body Agrega el atributo [Body] seguido de la clase que declaramos en el Modelo. public interface IFuelsApi { [Post("/api/fuels/addFuels")] Task<Fuel> CreateFuels([Body] Fuels fuels); } JSON Content Seguido al [Body] agrega el BodySerializationMethod.UrlE ncoded public interface IFuelsApi { [Post("/api/fuels/addFuels")] Task<Fuel>CreateFuels([Body(BodySerializationMethod. UrlEncoded)] Dictionary<string,object> data); } Form post
  • 19. Request ● Qué es? ● Estructura ● implementación ○ Sin parámetros ○ JSON Content ○ Query String ○ Post Forms
  • 20. El Request nos permite hacer la comunicación al EndPoint
  • 21. Paso 3: Creando el Request
  • 22. Implementando la estructura del Request async void GetResponse() { var apiResponse = RestService.For<IFuelsApi>("http://www.apidashboard.somee.com"); var fuels = await apiResponse.GetFuels(); } Sin parámetros async void GetResponse() { var apiResponse = RestService.For<IFuelsApi>("http://www.apidashboard.somee.com"); var fuels = await apiResponse.GetFuels("Premiun Fuel"); } Query String
  • 23. Implementando la estructura del Request async void GetResponse() { var apiResponse = RestService.For<IFuelsApi>("http://www.apidashboard.somee.com"); var fuels = await apiResponse.GetFuels(New Fuels()); } Post Form
  • 24. Leomaris Reyes Founder Stemelle / Platzi master Coach lreyes@stemelle.com