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