lidiando con formatos y unidades en nuestra api rest - python · pampeano, vivo en san rafael...

27
Allhands Febrero Lidiando con formatos y unidades en nuestra API REST #PyConAr2018 - 23/11/18 Matuu Varela

Upload: others

Post on 24-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

Allhands Febrero

Lidiando con formatos y unidades en nuestra

API REST

#PyConAr2018 - 23/11/18 Matuu Varela

Page 2: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

▪ Pampeano, vivo en San Rafael (Mza).

▪ Ingeniero en informática.

▪ Miembro de la Asociación Civil Python Argentina (Asociate!!)

▪ Desarrollo en Python/Django desde hace más de 5 años.

▪ Trabajo en Kilimo (Córdoba)

Hola...

Page 3: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

https://goo.gl/Uu645x

Page 4: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

API REST

Page 5: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)
Page 6: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

Recursos

Page 7: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)
Page 8: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)
Page 9: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

Serializadores

Page 10: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)
Page 11: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)
Page 12: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

Campos (Field)

Manejan la conversión entre los datos primitivos y los valores internos (python)

Page 13: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)
Page 14: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

Problema

Mi sistema maneja datos en unidades y formatos específicos, pero tengo que brindar

esos datos en otras unidades y formatos diferentes

Page 15: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

ProblemaEjemplo:

● Un usuario ingresa temperatura en °C, y pero otro desea visualizarlas en °F.

● Algunos usuarios ingresan la velocidad del viento en Km/h, otros en Mph, pero el sistema los procesa en m/s.

Page 16: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

Tip

Convertir la información en la frontera del sistema

Page 17: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

Veamos como crear nuestros propios field para manejar estas

conversiones.

Page 18: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)
Page 19: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)
Page 20: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

Otro ejemplo...

Page 21: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

¿Cómo usamos nuestros fields?

Page 22: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

¿Y el contexto?

Page 23: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

En la ‘view’:

En el ‘serializer’:

Page 24: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

Resumen:

● Crear tus propios ‘fields’ para manejar las transformaciones.

● Utilizar tus fields para crear los serializadores.

● Incluir en el contexto del serializador el contexto de la ‘request’ (para saber quien envia o solicita los datos).

Page 25: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

¿Lo vemos en acción?

Page 26: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

https://goo.gl/q6g1sZ

Page 27: Lidiando con formatos y unidades en nuestra API REST - Python · Pampeano, vivo en San Rafael (Mza). Ingeniero en informática. Miembro de la Asociación Civil Python Argentina (Asociate!!)

¡MUCHAS GRACIAS!

Twitter:@matuvarelaTelegram: @m4tuu