SlideShare una empresa de Scribd logo
WebApi,
más allá del “Hola
mundo”
19/10/2017
Hugo Biarge
Development Advisor at Plain Concepts
hbiarge@plainconcepts.com
@hbiarge
www.plainconcepts.com
MADRID
Paseo de la Castellana 163, 10º
28046 Madrid
T. (+34) 91 5346 836
BILBAO
Ledesma 10-bis, Planta 3 dpto 2
48001 Bilbao
T. (+34) 94 6073 371
BARCELONA
Av. Josep Tarradellas 10, 6º 1ª
08029 Barcelona
T. (+34) 93 3607 114
SEVILLA
Avenida de la innovación s/n
Edificio Renta Sevilla, 3º A
41020 Sevilla
DUBAI
Dubai Internet City. Building 1
73030 Dubai. EAU
T. (+971) 4 551 6653
LONDON
Impact Hub Kings Cross
24B York Way, N1 9AB
London. UK
SEATTLE
1511, Third Ave
Seattle WA 98101. USA
T. (+1) 206 708 1285
Agenda
Organización de proyectos
Inyección de dependencias
Autenticación y autorización
Documentación del api
Versionado
Implementación de los métodos de acción (CQRS)
Test de integración y unitarios
https://github.com/hbiarge/WebApi-Sample
Organización de proyectos
Api como proyecto de librería de clases
• Reutilizable en múltiples hosts
• Perdemos tooling 
Inyección de dependencias
DependencyResolvers
• Elige tu contenedor de IoC
Conoce la raíz de composición de WebApi
Cómo gestiona IDisposable tu contenedor?
Piensa en el ciclo de vida de tus dependencias
Autenticación y autorización
Diferencia entre 401 y 403
• Sobrescribe la implementación por defecto
ClaimsPrincipal tiene más información que los roles
• Utiliza los claims que necesites para tomar decisiones sobre autorización
https://github.com/DavidParks8/Owin-Authorization
Documenta tu API
Swagger
• Estandar de facto
Gran ecosistema
• Genaradores de código para clientes (C#, TypeScript, JS, …)
https://github.com/domaindrivendev/Swashbuckle
Versiona tu API
Permite evolucionar más fácilmente un API pública con clientes
Diferentes estrategias
• Url/query string
• Media Type
https://github.com/Microsoft/aspnet-api-versioning
Implementación de los métodos de acción
Separación de lecturas y escrituras
• CQRS
Comands and queries
• Micro-ORM en las queries
• DDD en los comandos
MediatR
• Bus en memoria
https://github.com/jbogard/MediatR
Testea tu API
Muy fácil montar integración
• TestServer de Owin
• TestServer es un host más de tu API
• End-2-End con base de datos
Haz test unitarios donde corresponda
• No pruebes la infraestructura
• Prueba la lógica
Thanks!
Hugo Biarge
hbiarge@plainconcepts.com
@hbiarge
www.plainconcepts.com
MADRID
Paseo de la Castellana 163, 10º
28046 Madrid
T. (+34) 91 5346 836
BILBAO
Ledesma 10-bis, Planta 3 dpto 2
48001 Bilbao
T. (+34) 94 6073 371
BARCELONA
Av. Josep Tarradellas 10, 6º 1ª
08029 Barcelona
T. (+34) 93 3607 114
SEVILLA
Avenida de la innovación s/n
Edificio Renta Sevilla, 3º A
41020 Sevilla
DUBAI
Dubai Internet City. Building 1
73030 Dubai. EAU
T. (+971) 4 551 6653
LONDON
Impact Hub Kings Cross
24B York Way, N1 9AB
London. UK
SEATTLE
1511, Third Ave
Seattle WA 98101. USA
T. (+1) 206 708 1285

Más contenido relacionado

Similar a Web api, más allá del 'hola mundo'

Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019
Luciano Moreira da Cruz
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - Quobis
Quobis
 
Tecnologías clave para la transformación digital en las empresas
Tecnologías clave para la transformación digital en las empresasTecnologías clave para la transformación digital en las empresas
Tecnologías clave para la transformación digital en las empresas
Qindel Group
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de Microservicios
Domingo Suarez Torres
 
Power BI para desarrolladores netcoreconf
Power BI para desarrolladores netcoreconfPower BI para desarrolladores netcoreconf
Power BI para desarrolladores netcoreconf
Antonio Soto
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018
Andres Solorzano
 
IT Nova - Jaspersoft Versión 9.0 Webinario
IT Nova - Jaspersoft  Versión 9.0 Webinario IT Nova - Jaspersoft  Versión 9.0 Webinario
IT Nova - Jaspersoft Versión 9.0 Webinario
IT-NOVA
 
Presentación IGALIA
Presentación IGALIAPresentación IGALIA
Presentación IGALIA
alberto_silva
 
Mejora tus resultados de negocios con Azure DevOps
Mejora tus resultados de negocios con Azure DevOpsMejora tus resultados de negocios con Azure DevOps
Mejora tus resultados de negocios con Azure DevOps
Belatrix Software
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
Carlos Toxtli
 
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo CabelloRealtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Plain Concepts
 
Plainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsPlainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time Applications
Carlos Landeras Martínez
 
Transformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOpsTransformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOps
atSistemas
 
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
John Bulla
 
Estándares Web y Accesibilidad en Colombia
Estándares Web y Accesibilidad en ColombiaEstándares Web y Accesibilidad en Colombia
Estándares Web y Accesibilidad en Colombia
Gabriel Porras
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenVidu
Micael Gallego
 
Html5 y otras yerbas
Html5 y otras yerbasHtml5 y otras yerbas
Html5 y otras yerbas
Avanet
 
Html5 y otras yerbas
Html5 y otras yerbasHtml5 y otras yerbas
Html5 y otras yerbas
Peter Concha
 
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
Luis Fernando Aguas Bucheli
 
BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)
BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)
BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)
pmluque
 

Similar a Web api, más allá del 'hola mundo' (20)

Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - Quobis
 
Tecnologías clave para la transformación digital en las empresas
Tecnologías clave para la transformación digital en las empresasTecnologías clave para la transformación digital en las empresas
Tecnologías clave para la transformación digital en las empresas
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de Microservicios
 
Power BI para desarrolladores netcoreconf
Power BI para desarrolladores netcoreconfPower BI para desarrolladores netcoreconf
Power BI para desarrolladores netcoreconf
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018
 
IT Nova - Jaspersoft Versión 9.0 Webinario
IT Nova - Jaspersoft  Versión 9.0 Webinario IT Nova - Jaspersoft  Versión 9.0 Webinario
IT Nova - Jaspersoft Versión 9.0 Webinario
 
Presentación IGALIA
Presentación IGALIAPresentación IGALIA
Presentación IGALIA
 
Mejora tus resultados de negocios con Azure DevOps
Mejora tus resultados de negocios con Azure DevOpsMejora tus resultados de negocios con Azure DevOps
Mejora tus resultados de negocios con Azure DevOps
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
 
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo CabelloRealtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
 
Plainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsPlainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time Applications
 
Transformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOpsTransformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOps
 
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
 
Estándares Web y Accesibilidad en Colombia
Estándares Web y Accesibilidad en ColombiaEstándares Web y Accesibilidad en Colombia
Estándares Web y Accesibilidad en Colombia
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenVidu
 
Html5 y otras yerbas
Html5 y otras yerbasHtml5 y otras yerbas
Html5 y otras yerbas
 
Html5 y otras yerbas
Html5 y otras yerbasHtml5 y otras yerbas
Html5 y otras yerbas
 
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
 
BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)
BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)
BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)
 

Último

Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
DanielaLoaeza5
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
GERARDO GONZALEZ
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
OmarPadillaGarcia
 
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptxS09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
yamilbailonw
 
Ducto Barras para instalaciones electricas
Ducto Barras para instalaciones electricasDucto Barras para instalaciones electricas
Ducto Barras para instalaciones electricas
Edgar Najera
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
Augusto César Dávila Callupe
 
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
KarinToledo2
 
Aletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdfAletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdf
elsanti003
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
karenperalta62
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
FernandoRodrigoEscal
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
carolina838317
 
Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
KristianSaavedra
 
muros de contencion, diseño y generalidades
muros de contencion, diseño y generalidadesmuros de contencion, diseño y generalidades
muros de contencion, diseño y generalidades
AlejandroArturoGutie1
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
FantasticVideo1
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
MaraManuelaUrribarri
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
MichaelLpezOrtiz
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
taniarivera1015tvr
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
carmenquintana18
 
simbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspecciónsimbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspección
HarofHaro
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
jemifermelgarejoaran1
 

Último (20)

Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
 
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptxS09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
 
Ducto Barras para instalaciones electricas
Ducto Barras para instalaciones electricasDucto Barras para instalaciones electricas
Ducto Barras para instalaciones electricas
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
 
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
 
Aletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdfAletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdf
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
 
Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
 
muros de contencion, diseño y generalidades
muros de contencion, diseño y generalidadesmuros de contencion, diseño y generalidades
muros de contencion, diseño y generalidades
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
 
simbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspecciónsimbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspección
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
 

Web api, más allá del 'hola mundo'

  • 1.
  • 2. WebApi, más allá del “Hola mundo” 19/10/2017
  • 3. Hugo Biarge Development Advisor at Plain Concepts hbiarge@plainconcepts.com @hbiarge
  • 4. www.plainconcepts.com MADRID Paseo de la Castellana 163, 10º 28046 Madrid T. (+34) 91 5346 836 BILBAO Ledesma 10-bis, Planta 3 dpto 2 48001 Bilbao T. (+34) 94 6073 371 BARCELONA Av. Josep Tarradellas 10, 6º 1ª 08029 Barcelona T. (+34) 93 3607 114 SEVILLA Avenida de la innovación s/n Edificio Renta Sevilla, 3º A 41020 Sevilla DUBAI Dubai Internet City. Building 1 73030 Dubai. EAU T. (+971) 4 551 6653 LONDON Impact Hub Kings Cross 24B York Way, N1 9AB London. UK SEATTLE 1511, Third Ave Seattle WA 98101. USA T. (+1) 206 708 1285
  • 5. Agenda Organización de proyectos Inyección de dependencias Autenticación y autorización Documentación del api Versionado Implementación de los métodos de acción (CQRS) Test de integración y unitarios https://github.com/hbiarge/WebApi-Sample
  • 6.
  • 7. Organización de proyectos Api como proyecto de librería de clases • Reutilizable en múltiples hosts • Perdemos tooling 
  • 8. Inyección de dependencias DependencyResolvers • Elige tu contenedor de IoC Conoce la raíz de composición de WebApi Cómo gestiona IDisposable tu contenedor? Piensa en el ciclo de vida de tus dependencias
  • 9. Autenticación y autorización Diferencia entre 401 y 403 • Sobrescribe la implementación por defecto ClaimsPrincipal tiene más información que los roles • Utiliza los claims que necesites para tomar decisiones sobre autorización https://github.com/DavidParks8/Owin-Authorization
  • 10. Documenta tu API Swagger • Estandar de facto Gran ecosistema • Genaradores de código para clientes (C#, TypeScript, JS, …) https://github.com/domaindrivendev/Swashbuckle
  • 11. Versiona tu API Permite evolucionar más fácilmente un API pública con clientes Diferentes estrategias • Url/query string • Media Type https://github.com/Microsoft/aspnet-api-versioning
  • 12. Implementación de los métodos de acción Separación de lecturas y escrituras • CQRS Comands and queries • Micro-ORM en las queries • DDD en los comandos MediatR • Bus en memoria https://github.com/jbogard/MediatR
  • 13. Testea tu API Muy fácil montar integración • TestServer de Owin • TestServer es un host más de tu API • End-2-End con base de datos Haz test unitarios donde corresponda • No pruebes la infraestructura • Prueba la lógica
  • 15. www.plainconcepts.com MADRID Paseo de la Castellana 163, 10º 28046 Madrid T. (+34) 91 5346 836 BILBAO Ledesma 10-bis, Planta 3 dpto 2 48001 Bilbao T. (+34) 94 6073 371 BARCELONA Av. Josep Tarradellas 10, 6º 1ª 08029 Barcelona T. (+34) 93 3607 114 SEVILLA Avenida de la innovación s/n Edificio Renta Sevilla, 3º A 41020 Sevilla DUBAI Dubai Internet City. Building 1 73030 Dubai. EAU T. (+971) 4 551 6653 LONDON Impact Hub Kings Cross 24B York Way, N1 9AB London. UK SEATTLE 1511, Third Ave Seattle WA 98101. USA T. (+1) 206 708 1285