SlideShare una empresa de Scribd logo
1 de 22
2020
Netcoreconf
Buenas practicas para implementar
tu API REST en .NET Core como un
Avenger
Adrián Díaz Cervera
Software Architect Lead at ENCAMINA
@AdrianDiaz81
#netcoreconf
Sponsors
#netcoreconf
¿Quién soy?
http://blogs.encamina.com/desarrollandosobresharepoint
adiaz@encamina.com
@AdrianDiaz81
#netcoreconf
Agenda
¿Por donde
empezamos?
Nomenclatura
Estructura de la
solución
Documentación
Versionado
Autenticacion
Seguridad
OData
#netcoreconf
¿Por donde empezamos?
#netcoreconf
Por donde empezamos
• Como en toda batalla => Tener claro el objetivo
• Establecer
Nomenclatura de la API
• Tanto importante para su desarrollo como para sus consumidores
Protocolos de respuesta
• Ajustarse al estándar
Autenticación/ Seguridad
• Tener claro antes de empezar si nos el patrón de autenticación
Definir los métodos a implementar
• No pensar ni en el modelo de Base de Datos ni pensar en la visualización
#netcoreconf
Nomenclatura
There are only two hard problem in Computer Science:
1- Naming things
2- Cache invalidation
-- Phil Karlton
#netcoreconf
¿Qué es REST?
REST => la forma habitual en la creación de APIS
una interfaz de sistemas que usa HTTP para obtener datos
#netcoreconf
Best practices en la nomenclatura
• Usar sustantivos para representar recursos.
4 tipos
- Document => Una única instancia, registro base de datos
- Collection => Un directorio de recursos administrado por el servidor
- Store => es un repositorio de recursos gestionado por el cliente
- Controller=> modela un concepto de procedimiento
#netcoreconf
Best practices en la nomenclatura
Consistencia =>
1. Usar slash (/) para indicar relación jerarquica
2. No usar slash(/) para finalizar la petición
3. Usa (-) para mejorar la legibilidad de la URI
4. No usar (_)
5. Usar letras minisculas en las URI
6. No usar extensión de ficheros
#netcoreconf
Documentación
Documentar suele ser importante, pero en una API más !!
¿Por qué?
Establecer un contrato entre el servidor y el cliente
Sino existe nadie utilizara nuestra API
#netcoreconf
Swagger
Nace con el objetivo de que estandarizar el vocabulario de las API
Son una serie de herramientas que ponemos en nuestro código para
documentarla y hacerla accesible a sus consumidores
Es una de las herramientas más extendidas y se integra con otras
plataformas como puede ser Azure API Managment
#netcoreconf
Versionado
• Independientemente hacerlo al principio
• Decidir como vamos a versionar
• En la URL https://localhost:44358/api/v1.0/values
• En la QueryString https://localhost:44358/api/values?api-version=1.0
• En el Header del http : Añadir en el header la versión a consumir
• Posibilidad de tener controladores que no tienen versión
#netcoreconf
OData
• Open Data Protocol
• Protocolo Abierto impulsado por Microsoft para realizar consultas sobre API
Rest => Simple y estándar
• La creación de una forma uniforme de representación de datos
estructurados a través de Atom o JSON (JavaScript Object Notation)
• La utilización de convenciones URL uniformes tanto para la
navegación, filtrado, orden y paginación de datos (entre otros)
• La creación de operaciones uniformes dirigidas por dirección
mediante las acciones GET, POST, PUT y DELETE.
#netcoreconf
Odata Ejemplos
#netcoreconf
Odata Ejemplos
#netcoreconf
Autenticación vs
Autorizacion
• Autenticación => Identifica elementos de
autenticación y crea la instancia de la Claim
principal
• Autorización => En base a la Claim del usuario el
usuario tiene unos permisos para realizar
determinadas acciones
#netcoreconf
Autenticación
• ¡Autenticación siempre es muy difícil!!
• Estableceremos una Autenticación usando JWT
JSON Web Token (abreviado JWT) es un estándar abierto
basado en JSON propuesto por IETF (RFC 7519)
para la creación de tokens de acceso
#netcoreconf
Otros aspectos a considerar
• Medidas de seguridad para evitar los ataques
• Estado de salud
• Monitorización de la API => APP Insights
• Testing de la API => punto a punto, mock,
• Como migrar a la nueva versión
• Gobernanza de los elementos utilizados
#netcoreconf
Resumen
• Tener claro el objetivo a realizar => Cabeza y sentido
común
• Definir una nomenclatura => lo más estándar posible
• ¡¡Importancia de la documentación !! => Sino se
conoce no se usa
• Estrategia de versionado a nivel de API
• Autenticación y Autorización bien definida
#netcoreconf
Sponsors
Más información:
info@netcoreconf.com
@Netcoreconf
Visítanos en:
netcoreconf.com

Más contenido relacionado

Similar a Como desarrollar una api en .NET Core como un autentico Avenger

Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"Alonso Caballero
 
Mada metodología ágil de desarrollo de apis
Mada   metodología ágil de desarrollo de apisMada   metodología ágil de desarrollo de apis
Mada metodología ágil de desarrollo de apisCloudAppi
 
Re evolución robótica
Re evolución robóticaRe evolución robótica
Re evolución robóticaSoftware Guru
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7Luis Ruiz Pavón
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoLuciano Moreira da Cruz
 
Netcoreconf 2020 - Gammification with Microsoft Learn
Netcoreconf 2020 - Gammification with Microsoft LearnNetcoreconf 2020 - Gammification with Microsoft Learn
Netcoreconf 2020 - Gammification with Microsoft LearnAlex Martinez Mañé
 
Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones...
Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones...Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones...
Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones...atSistemas
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
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 2019Luciano Moreira da Cruz
 
Charla evento TestingUY 2015 - Una experiencia diferente con Tokens PKI
Charla evento TestingUY 2015 - Una experiencia diferente con Tokens PKICharla evento TestingUY 2015 - Una experiencia diferente con Tokens PKI
Charla evento TestingUY 2015 - Una experiencia diferente con Tokens PKITestingUy
 
Introducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresIntroducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresGuillermo Javier Bellmann
 

Similar a Como desarrollar una api en .NET Core como un autentico Avenger (20)

Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
Mada metodología ágil de desarrollo de apis
Mada   metodología ágil de desarrollo de apisMada   metodología ágil de desarrollo de apis
Mada metodología ágil de desarrollo de apis
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Azure infrastructure testing con inspec
Azure infrastructure testing con inspecAzure infrastructure testing con inspec
Azure infrastructure testing con inspec
 
Re evolución robótica
Re evolución robóticaRe evolución robótica
Re evolución robótica
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 
Netcoreconf 2020 - Gammification with Microsoft Learn
Netcoreconf 2020 - Gammification with Microsoft LearnNetcoreconf 2020 - Gammification with Microsoft Learn
Netcoreconf 2020 - Gammification with Microsoft Learn
 
Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones...
Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones...Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones...
Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones...
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
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
 
Charla evento TestingUY 2015 - Una experiencia diferente con Tokens PKI
Charla evento TestingUY 2015 - Una experiencia diferente con Tokens PKICharla evento TestingUY 2015 - Una experiencia diferente con Tokens PKI
Charla evento TestingUY 2015 - Una experiencia diferente con Tokens PKI
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
 
Introducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresIntroducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos Aires
 
ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 

Más de Adrian Diaz Cervera

React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?Adrian Diaz Cervera
 
Netcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureNetcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureAdrian Diaz Cervera
 
Global Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameGlobal Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameAdrian Diaz Cervera
 
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAzure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAdrian Diaz Cervera
 
Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Adrian Diaz Cervera
 
Docker para desarrolladores .NET
Docker para desarrolladores .NETDocker para desarrolladores .NET
Docker para desarrolladores .NETAdrian Diaz Cervera
 
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordHelo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordAdrian Diaz Cervera
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...Adrian Diaz Cervera
 
Machine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesMachine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesAdrian Diaz Cervera
 
Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian Diaz Cervera
 
Soluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesSoluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesAdrian Diaz Cervera
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePointAdrian Diaz Cervera
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014Adrian Diaz Cervera
 
Share point y los dispositivos moviles
Share point y los dispositivos movilesShare point y los dispositivos moviles
Share point y los dispositivos movilesAdrian Diaz Cervera
 

Más de Adrian Diaz Cervera (20)

gRPC vs Rest La batalla final
gRPC vs Rest La batalla finalgRPC vs Rest La batalla final
gRPC vs Rest La batalla final
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 
Netcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureNetcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en Azure
 
Global Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameGlobal Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGame
 
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAzure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
 
Dockeriza tu SQL Server
Dockeriza tu SQL ServerDockeriza tu SQL Server
Dockeriza tu SQL Server
 
Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2
 
Docker para desarrolladores .NET
Docker para desarrolladores .NETDocker para desarrolladores .NET
Docker para desarrolladores .NET
 
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordHelo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
 
Asp vNext Is Comming
Asp vNext Is CommingAsp vNext Is Comming
Asp vNext Is Comming
 
Gapand 2015 machine learning
Gapand 2015 machine learningGapand 2015 machine learning
Gapand 2015 machine learning
 
ALM y Office 365
ALM y Office 365 ALM y Office 365
ALM y Office 365
 
Machine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesMachine learning utilizacion en redes sociales
Machine learning utilizacion en redes sociales
 
Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365
 
Extender office365
Extender office365 Extender office365
Extender office365
 
Soluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesSoluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresariales
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePoint
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
 
Share point y los dispositivos moviles
Share point y los dispositivos movilesShare point y los dispositivos moviles
Share point y los dispositivos moviles
 

Último

Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024eCommerce Institute
 
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na CoruñaCURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruñaanoiteenecesaria
 
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024eCommerce Institute
 
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...eCommerce Institute
 
Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024eCommerce Institute
 
Guiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abrilGuiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abriljulianagomezm2
 
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoCURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoanoiteenecesaria
 
Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024eCommerce Institute
 
Introduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdfIntroduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdfDaniel425270
 
Pablo Scasso - eCommerce Day Chile 2024
Pablo Scasso -  eCommerce Day Chile 2024Pablo Scasso -  eCommerce Day Chile 2024
Pablo Scasso - eCommerce Day Chile 2024eCommerce Institute
 
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024eCommerce Institute
 
Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024eCommerce Institute
 
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfAct#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfXimenaGonzlez95
 
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024eCommerce Institute
 
Suiwen He - eCommerce Day Chile 2024
Suiwen He  -  eCommerce  Day  Chile 2024Suiwen He  -  eCommerce  Day  Chile 2024
Suiwen He - eCommerce Day Chile 2024eCommerce Institute
 

Último (15)

Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
 
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na CoruñaCURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
 
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
 
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
 
Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024
 
Guiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abrilGuiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abril
 
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoCURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
 
Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024
 
Introduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdfIntroduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdf
 
Pablo Scasso - eCommerce Day Chile 2024
Pablo Scasso -  eCommerce Day Chile 2024Pablo Scasso -  eCommerce Day Chile 2024
Pablo Scasso - eCommerce Day Chile 2024
 
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
 
Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024
 
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfAct#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
 
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
 
Suiwen He - eCommerce Day Chile 2024
Suiwen He  -  eCommerce  Day  Chile 2024Suiwen He  -  eCommerce  Day  Chile 2024
Suiwen He - eCommerce Day Chile 2024
 

Como desarrollar una api en .NET Core como un autentico Avenger

Notas del editor

  1. Que vamos a ver en la sesión de hoy??? Esta claro que hace en nuestro día a día muchos empezamos a implementar una API, quizás muchos empiecen primero con la implementación de la lógica funcional .. Y empezamos de abajo arriba … pero en esta sesión que vamos a ver .. Vamos a centrarnos solo en la parte de la API que es lo que necesitamos para tener todo lo necesario para hacer una API de la que nos sintamos medianamente orgullosos y como hacerla en .NET Core 3.1
  2. ¿Qué hace Nick Fury cuando empieza una batalla? Organización lo primero de todo …
  3. Antes de empezar, da igual si estamos desarrollando una API, una aplicación Web o cualquier cosa independientemente de la tecnología es muy importante que nos paremos a pensar que es lo que vamos a hacer y como lo vamos a hacer antes de tirar una sola línea de código… luego ya entraremos en materia ¿Por donde empezarías? No hay una única forma de empezar, pero si que dependiendo de que opción tengamos es posible que tengamos que hacer faena pero cada maestrillo con su librillo :P
  4. Se nos llena la boca de hablar de servicios REST y luego nuestros servicios son de todo menos REST… quien no ha cogido una API y el primer método de la api es http://loquesa/api/avengers/getavengers REST vayamos por parte y no confundamos por un lado un servicio REST usa los protocolos HTTP para la obtención de datos, veamos eso como GET,POST, PUT, DELETE eso no lo debemos de poner nunca en la definición de los métodos , vale el segundo factor que debemos de tener en cuenta es que debemos de considerar todo lo que tiene como si fuera un recurso que nos va a servir, todo lo que nos devuelve la API es un recurso, desde una imagen a un registro de la base de datos de esta vamos a tener en cuenta para otros aspectos en la creación de la API como es la devolución de los resultados .
  5. Podemos dividir los sustantiovos en 4 grupos (documento, colección, almacén y controlador) Collection => Depende del servidor permitir si se añaden más recursos o no
  6. Consistencia para mi es sentido común que mucha veces nos falta … cuando hablamos de consistencias hablamos de que vamos a utilizar una convenciones de nombres de recursos y formato de URI consistentes para una mínima ambigüedad y una máxima legibilidad y mantenimiento. Podemos definir una serie de consejos .. A parte de esto vamos a utilizar el sentido común en otros dos aspectos que no he mencionado en esta PPT=> primero en los CRUD no lo haremos implícitamente es decir no pondremos ADD, Delo o el nombre de nuestro método y por otro lado para el tema de los filtrados de la colección usaremos elementos en la QueryString para paginar, filtrar, etc… en esta parte de como hacer esto tambien podemos usar una “estándar” como pueda ser Odata.
  7. Si hay algo que no nos gusta a los informaticos /tecnólogos o developers es desarrollar y centramos nuestras energías en intentar en implementar la funcionalidad requerida, pero vamos a centrarnos en que estamos desarrollando una API sino tenemos documentados los métodos que nuestros clientes nos van a pedir como les decimos que nos consuman/utilicen… Vale ahora mucho me diréis que estamos haciendo una API pero solo la va a utilizar el FRONT de una determinada aplicación y que es posible incluso que lo haga la misma persona … vale genial … pero si esa persona sale del proyecto y nos piden un cambio que hacemos ?? Por regla general os digo lo que hacemos … un método que probablemente ya esta en la API … como lo podemos solucionar Swagger
  8. Muchas veces empezamos el proyecto y no tenemos en cuenta que es posible que tengamos más de un cliente y que igual los cambios que aplican para un cliente no aplican para otro y la solución no es tener dos métodos diferentes y que cada uno consuma el que quiera.. lo chulo he interesante es versionar la api tener una política de cuando vamos a tener una major versión o cuando va a ser una minor, cuando vamos a deprecar una versión, o cuando obligaremos a nuestros clientes a utilizar la nueva versión … Ahora bien Como versionamos?
  9. Por otro lado, entre las empresas que empiezan a exponer sus propios datos por OData se encuentran destacadas a eBay, Facebook Insight, IBM WebSpehere, Netflix, twitpic, GeoREST, Nuget, Windows Live o Dbpedia entre otras en el sector privado y Open Government Data Initiative (OGDI), The City of Edmonton Open Data Catalogue o Public Transit Data Community, por destacar algunas
  10. El autenticar siempre es algo que dejamos para el final … aunque para mi casi es lo primero que deberíamos de poner ?? Si hay algo que tiene una seguridad por algo será … muchas veces nos ponemos el simil de la construcción y claro cuando hacemos la casa lo ultimo que debemos de poner es la puerta de entrada … pero eso depende porque si no aseguras tu casa o la obra ya sabes como acaba esta … en lo ajeno no .. Pues con las APIS es igual y si un método tiene que tener autenticación y autorización cuanto antes mejor …