SlideShare una empresa de Scribd logo
1 de 44
Diseño de APIs.
TALLER DE USO DE ORACLE
APIARY
S&P Solutions
Rolando Carrasco
rcarrasco@spsolutions.com.mx
Twitter: @borland_c
Blvd Manuel Avila Camacho #36-10
Lomas de Chapultepec CP 11000
+52 55 91721478
S&P Solutions
AGENDA
02
S&P Solutions
Libros Publicados
03
S&P Solutions
Libros Publicados
03
Nuevo
http://oracle-integration.cloud/
S&P Solutions
Programa de Oracle ACE. Red Expert Alliance. Developer Champion.
04
http://www.oracle.com/technetwork/community/oracle-ace/index.html
https://www.redexpertalliance.com/map-page/
https://blogs.oracle.com/developers/new-
developer-champion-program
API BLUEPRINT
Es un lenguaje de alto nivel para el diseño de Web APIs.
API blueprint es simple y accesible para todo aquel involucrado en
el ciclo de vida de diseño. Su sintaxis es concisa pero al mismo
tiempo expresiva.
Con API Blueprint tú puedes fácilmente modelar APIs para ser
creadas o describir APIs que ya estén desplegadas.
El API está construído para motivar el diálogo y la colaboración entre
los stakeholders de proyectos, desarrolladores y clientes en
cualquier punto del ciclo de vida de la construcción de las APIs. Al
mismo tiempo, las herramientas de API Blueprint proveen soporte
para alcanzar los objetivos de desarrollo, gobierno y entrega.
05
API BLUEPRINT
Un poco de historia:
06
Fuente: http://restlet.com/company/blog/2017/04/26/a-short-history-of-oai-and-api-specifications/
¿Y esto?
Javadoc
07
API BLUEPRINT.
Contract first approach
• API blueprint abona muy bien a esta idea del contract
first approach
• Indudablemente esto nos ayuda a ser más ágiles en el
desarrollo y en la colaboración con los demás.
• Los consumidores no tienen por qué esperarnos hasta
que el desarrollo esté finalizado.
• Podemos ir entregando conforme vamos diseñando los
contratos y posteriormente realizar la implementación
• Apiary tiene justamente este valor.
08
API BLUEPRINT
Así es como luce un API Blueprint
09
API BLUEPRINT
Establecer el nombre de la API
10
API BLUEPRINT
API Resource (recurso):
11
API BLUEPRINT
Acciones:
12
API BLUEPRINT
Mas de una acción->
13
API BLUEPRINT
Mas recursos, diferentes formas:
14
API BLUEPRINT
Parámetros con Acción:
15
API BLUEPRINT
Respuesta sin Body:
16
API BLUEPRINT
Múltiples respuestas:
17
Mi primer API
18
1. ¿Cómo decidir el nombre?
2. ¿Cómo nombrar a los recursos?
3. ¿Cómo establecer los verbos a
utilizar?
4. ¿Es necesario versionar a las
APIs?
SPS Pharma API
19
1. Listado de Sucursales
2. Listado de Sucursal por ID
3. Ubicación de Sucursal por código postal
4. Validación de existencia por medicamento
5. Poner un pedido en una sucursal particular
SPS Pharma API Blueprint
20
SPS Pharma API Blueprint
Recurso /farmacia
21
SPS Pharma API Blueprint
Recurso /farmacia (verbo GET)
22
¿Pero qué le falta?
a)¿Encabezados?
b)¿Respuestas de falla?
c) ¿Códigos de HTTP?
SPS Pharma API Blueprint
Recurso /farmacia (GET con un parámetro)
23
Se colocan ejemplos por
cada sucursal.
¿Pero qué aprendimos en láminas
pasadas sobre los parámetros?
¿Cómo lo podemos expresar?
SPS Pharma API Blueprint
Recurso /farmacia (GET con un parámetro)
24
Se colocan ejemplos por
cada sucursal.
¿Pero qué aprendimos en láminas
pasadas sobre los parámetros?
¿Cómo lo podemos expresar?
SPS Pharma API Blueprint
Recurso /farmacia/cp (GET con un parámetro)
25
Casi es el mismo recurso,
pero hemos agregado /cp.
Con este queremos obtener la
lista de sucursales cercanas a un
código postal.
Falta agregar:
1. Errores
2. Excepciones
SPS Pharma API Blueprint
Recurso /farmacia/inventario (GET con un parámetro)
26
Con esto quiero recuperar
la existencia de un medicamento.
¿Qué mas puedo agregar?
¿Encabezados?
SPS Pharma API Blueprint
Recurso /farmacia/pedido (POST)
27
Aquí nos faltan igualmente:
1. Errores
2. Excepciones
3. Media Types
SPS Pharma API Blueprint
Documentemos bien a nuestra API
28
Vamos a documentar cada recurso.
SPS Pharma API Blueprint
Documentemos bien a nuestra API
29
Podemos ir viendo el resultado,
conforme vamos realizando la
Documentación.
SPS Pharma API Blueprint
Probemos nuestra API
30
Esta es una gran característica de Apiary. No
únicamente nos sirve para documentar/diseñar a
nuestras APIs, pero también tenemos la capacidad de
probarlas.
Podemos:
a) Probar desde la propia consola de Apiary
b) Copiar el endpoint generado por Apiary y usarlo
desde un navegador o desde Postman, por ejemplo.
SPS Pharma API Blueprint
Probando desde la Consola
31
Click sobre el recurso.
SPS Pharma API Blueprint
Probando desde la Consola
32
Click sobre este botón.
SPS Pharma API Blueprint
Probando desde la Consola
33
Headers.
Después de dar click en el botón, simplemente hacemos scroll down y veremos lo siguiente:
SPS Pharma API Blueprint
Probando desde la Consola
34
Justo la respuesta que habíamos
modelado.
Mas abajo vemos:
SPS Pharma API Blueprint
Copiando el endpoint
35
Copia y pega esto en un
navegador.
Haz scroll hacia arriba y verás:
SPS Pharma API Blueprint
Copiando el endpoint
36
En este caso lo podemos hacer, debido a que
es un GET.
SPS Pharma API Blueprint
Probando desde Postman
37
Usemos el recurso
para colocar un pedido.
El request lo copiamos
de nuestra
documentación.
El verbo que usamos
es POST.
Veamos cómo la
respuesta es la que
colocamos.
SPS Pharma API Blueprint
Probando desde Postman
38
Modifica la respuesta
desde APIARY y vuelve
a probar el mismo
recurso.
Mira cómo la respuesta
cambia:
SPS Pharma API Blueprint
Inspeccionado las llamadas
39
Apiary nos permite realizar una inspección de
nuestras peticiones. Las que están en verde es
porque fueron exitosas con respecto a la
documentación.
Las que están en naranja es que tuvieron un error.
SPS Pharma API Blueprint
Inspeccionado las llamadas con algún error
40
¿Por qué nos marcó esto?
En las primeras de llamadas
desde el Postman, ¿qué
content-type hemos
utilizado? ¿Recuerdas?
¿Cuál habíamos colocado
originalmente?
SPS Pharma API Blueprint
Integración con GitHub
41
Podemos integrar con
Github para ir realizando los
commits hacia un repositorio
de manera automática.
Así puedes ir promoviendo
tus cambios a tu repositorio
de GitHub.
https://github.com/RCPDevChamp/oracle/blob/master/apiary.apib
El rol del desarrollador
43
1. ¿Cómo vivimos actualmente?
2. ¿Gracias a qué podemos habilitar
tantos servicios, APIs y
aplicaciones?
3. ¿Cómo se lleva a cabo la
interoperabilidad de las
aplicaciones?
Además de elementos con igual
importancia como las redes y los
dispositivos, el común denominador
es código.
CONTACTO
S&P Solutions
Rolando Carrasco
rcarrasco@spsolutions.com.mx
Twitter: @borland_c
Blog: http://oracleradio.blogspot.com
Web: http://www.spsolutions.com.mx

Más contenido relacionado

Similar a Apiary workshop.

Comparación de API y SOA
Comparación de API y SOAComparación de API y SOA
Comparación de API y SOADiego Suarez
 
Que es un paradigma y api
Que es un paradigma y apiQue es un paradigma y api
Que es un paradigma y apidavidleggio
 
Que es un paradigma y api
Que es un paradigma y apiQue es un paradigma y api
Que es un paradigma y apidavidleggio
 
La importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsLa importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsRolando Carrasco
 
Apis Agregadas computomasivo
Apis Agregadas computomasivoApis Agregadas computomasivo
Apis Agregadas computomasivoAndrea Guevara
 
Conectores con tiendas online | Factor Libre
Conectores con tiendas online | Factor LibreConectores con tiendas online | Factor Libre
Conectores con tiendas online | Factor LibreDomatix
 
Integrando los servicios REST a nuestras aplicaciones APEX
Integrando los servicios REST a nuestras aplicaciones APEXIntegrando los servicios REST a nuestras aplicaciones APEX
Integrando los servicios REST a nuestras aplicaciones APEXA+ Steel, SRL
 
Creando un Web API desde la idea hasta el despliegue de forma ágil
Creando un Web API desde la idea hasta el despliegue de forma ágilCreando un Web API desde la idea hasta el despliegue de forma ágil
Creando un Web API desde la idea hasta el despliegue de forma ágilEudris Cabrera
 
Webinar AppDynamics
Webinar AppDynamicsWebinar AppDynamics
Webinar AppDynamicsatSistemas
 
Open erp presentacion_olivier_jornadas_bilbao2010
Open erp presentacion_olivier_jornadas_bilbao2010Open erp presentacion_olivier_jornadas_bilbao2010
Open erp presentacion_olivier_jornadas_bilbao2010openerpsite
 
Conectando Software por medio de APIs
Conectando Software por medio de APIsConectando Software por medio de APIs
Conectando Software por medio de APIsSoftware Guru
 
24 HOP edición Español -Database Unit Testing -Carlos Lone
24 HOP edición Español -Database Unit Testing -Carlos Lone24 HOP edición Español -Database Unit Testing -Carlos Lone
24 HOP edición Español -Database Unit Testing -Carlos LoneSpanishPASSVC
 
Software erp libre y propietario
Software erp libre y propietarioSoftware erp libre y propietario
Software erp libre y propietarioCharlie Stark
 
Software erp libre y propietario
Software erp libre y propietarioSoftware erp libre y propietario
Software erp libre y propietarioRolando
 
Software erp libre y propietario
Software erp libre y propietarioSoftware erp libre y propietario
Software erp libre y propietarioCharlie Stark
 

Similar a Apiary workshop. (20)

Comparación de API y SOA
Comparación de API y SOAComparación de API y SOA
Comparación de API y SOA
 
Que es un paradigma y api
Que es un paradigma y apiQue es un paradigma y api
Que es un paradigma y api
 
Que es un paradigma y api
Que es un paradigma y apiQue es un paradigma y api
Que es un paradigma y api
 
Avanttic evento virtual apificacion_oracle_cloud
Avanttic evento virtual apificacion_oracle_cloudAvanttic evento virtual apificacion_oracle_cloud
Avanttic evento virtual apificacion_oracle_cloud
 
La importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsLa importancia de las APIs en los chatbots
La importancia de las APIs en los chatbots
 
Workshop: Testeando nuestra aplicaciones.
Workshop: Testeando nuestra aplicaciones.Workshop: Testeando nuestra aplicaciones.
Workshop: Testeando nuestra aplicaciones.
 
Apis Agregadas computomasivo
Apis Agregadas computomasivoApis Agregadas computomasivo
Apis Agregadas computomasivo
 
Aop
AopAop
Aop
 
Conectores con tiendas online | Factor Libre
Conectores con tiendas online | Factor LibreConectores con tiendas online | Factor Libre
Conectores con tiendas online | Factor Libre
 
Integrando los servicios REST a nuestras aplicaciones APEX
Integrando los servicios REST a nuestras aplicaciones APEXIntegrando los servicios REST a nuestras aplicaciones APEX
Integrando los servicios REST a nuestras aplicaciones APEX
 
Creando un Web API desde la idea hasta el despliegue de forma ágil
Creando un Web API desde la idea hasta el despliegue de forma ágilCreando un Web API desde la idea hasta el despliegue de forma ágil
Creando un Web API desde la idea hasta el despliegue de forma ágil
 
Webinar AppDynamics
Webinar AppDynamicsWebinar AppDynamics
Webinar AppDynamics
 
Open erp presentacion_olivier_jornadas_bilbao2010
Open erp presentacion_olivier_jornadas_bilbao2010Open erp presentacion_olivier_jornadas_bilbao2010
Open erp presentacion_olivier_jornadas_bilbao2010
 
Conectando Software por medio de APIs
Conectando Software por medio de APIsConectando Software por medio de APIs
Conectando Software por medio de APIs
 
Charla REST API
Charla REST APICharla REST API
Charla REST API
 
24 HOP edición Español -Database Unit Testing -Carlos Lone
24 HOP edición Español -Database Unit Testing -Carlos Lone24 HOP edición Español -Database Unit Testing -Carlos Lone
24 HOP edición Español -Database Unit Testing -Carlos Lone
 
09 24 hopes_2014_carloslone
09 24 hopes_2014_carloslone09 24 hopes_2014_carloslone
09 24 hopes_2014_carloslone
 
Software erp libre y propietario
Software erp libre y propietarioSoftware erp libre y propietario
Software erp libre y propietario
 
Software erp libre y propietario
Software erp libre y propietarioSoftware erp libre y propietario
Software erp libre y propietario
 
Software erp libre y propietario
Software erp libre y propietarioSoftware erp libre y propietario
Software erp libre y propietario
 

Más de Rolando Carrasco

REAL Expert Alliance OCI series part 4 - OKE
REAL Expert Alliance OCI series part 4 - OKEREAL Expert Alliance OCI series part 4 - OKE
REAL Expert Alliance OCI series part 4 - OKERolando Carrasco
 
API Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.ioAPI Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.ioRolando Carrasco
 
The relevance of design principles for WEB APIs
The relevance of design principles for WEB APIsThe relevance of design principles for WEB APIs
The relevance of design principles for WEB APIsRolando Carrasco
 
API Design Principles with Oracle Apiary.
API Design Principles with Oracle Apiary.API Design Principles with Oracle Apiary.
API Design Principles with Oracle Apiary.Rolando Carrasco
 
Introduction to Serverless. Oracle Fn Project.
Introduction to Serverless. Oracle Fn Project.Introduction to Serverless. Oracle Fn Project.
Introduction to Serverless. Oracle Fn Project.Rolando Carrasco
 
Mis APIs. Tus APIs. Las APIs de todos.
Mis APIs. Tus APIs. Las APIs de todos.Mis APIs. Tus APIs. Las APIs de todos.
Mis APIs. Tus APIs. Las APIs de todos.Rolando Carrasco
 
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.Rolando Carrasco
 
iPaaS. Oracle ICS the best option
iPaaS. Oracle ICS the best optioniPaaS. Oracle ICS the best option
iPaaS. Oracle ICS the best optionRolando Carrasco
 
El Rol del Desarrollador en la Transformación Digital
El Rol del Desarrollador en la Transformación DigitalEl Rol del Desarrollador en la Transformación Digital
El Rol del Desarrollador en la Transformación DigitalRolando Carrasco
 

Más de Rolando Carrasco (10)

REAL Expert Alliance OCI series part 4 - OKE
REAL Expert Alliance OCI series part 4 - OKEREAL Expert Alliance OCI series part 4 - OKE
REAL Expert Alliance OCI series part 4 - OKE
 
API Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.ioAPI Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.io
 
Styleguide for your APIs
Styleguide for your APIsStyleguide for your APIs
Styleguide for your APIs
 
The relevance of design principles for WEB APIs
The relevance of design principles for WEB APIsThe relevance of design principles for WEB APIs
The relevance of design principles for WEB APIs
 
API Design Principles with Oracle Apiary.
API Design Principles with Oracle Apiary.API Design Principles with Oracle Apiary.
API Design Principles with Oracle Apiary.
 
Introduction to Serverless. Oracle Fn Project.
Introduction to Serverless. Oracle Fn Project.Introduction to Serverless. Oracle Fn Project.
Introduction to Serverless. Oracle Fn Project.
 
Mis APIs. Tus APIs. Las APIs de todos.
Mis APIs. Tus APIs. Las APIs de todos.Mis APIs. Tus APIs. Las APIs de todos.
Mis APIs. Tus APIs. Las APIs de todos.
 
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
 
iPaaS. Oracle ICS the best option
iPaaS. Oracle ICS the best optioniPaaS. Oracle ICS the best option
iPaaS. Oracle ICS the best option
 
El Rol del Desarrollador en la Transformación Digital
El Rol del Desarrollador en la Transformación DigitalEl Rol del Desarrollador en la Transformación Digital
El Rol del Desarrollador en la Transformación Digital
 

Último

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Último (12)

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Apiary workshop.

  • 1. Diseño de APIs. TALLER DE USO DE ORACLE APIARY S&P Solutions Rolando Carrasco rcarrasco@spsolutions.com.mx Twitter: @borland_c Blvd Manuel Avila Camacho #36-10 Lomas de Chapultepec CP 11000 +52 55 91721478
  • 5. S&P Solutions Programa de Oracle ACE. Red Expert Alliance. Developer Champion. 04 http://www.oracle.com/technetwork/community/oracle-ace/index.html https://www.redexpertalliance.com/map-page/ https://blogs.oracle.com/developers/new- developer-champion-program
  • 6. API BLUEPRINT Es un lenguaje de alto nivel para el diseño de Web APIs. API blueprint es simple y accesible para todo aquel involucrado en el ciclo de vida de diseño. Su sintaxis es concisa pero al mismo tiempo expresiva. Con API Blueprint tú puedes fácilmente modelar APIs para ser creadas o describir APIs que ya estén desplegadas. El API está construído para motivar el diálogo y la colaboración entre los stakeholders de proyectos, desarrolladores y clientes en cualquier punto del ciclo de vida de la construcción de las APIs. Al mismo tiempo, las herramientas de API Blueprint proveen soporte para alcanzar los objetivos de desarrollo, gobierno y entrega. 05
  • 7. API BLUEPRINT Un poco de historia: 06 Fuente: http://restlet.com/company/blog/2017/04/26/a-short-history-of-oai-and-api-specifications/
  • 9. API BLUEPRINT. Contract first approach • API blueprint abona muy bien a esta idea del contract first approach • Indudablemente esto nos ayuda a ser más ágiles en el desarrollo y en la colaboración con los demás. • Los consumidores no tienen por qué esperarnos hasta que el desarrollo esté finalizado. • Podemos ir entregando conforme vamos diseñando los contratos y posteriormente realizar la implementación • Apiary tiene justamente este valor. 08
  • 10. API BLUEPRINT Así es como luce un API Blueprint 09
  • 11. API BLUEPRINT Establecer el nombre de la API 10
  • 12. API BLUEPRINT API Resource (recurso): 11
  • 14. API BLUEPRINT Mas de una acción-> 13
  • 15. API BLUEPRINT Mas recursos, diferentes formas: 14
  • 19. Mi primer API 18 1. ¿Cómo decidir el nombre? 2. ¿Cómo nombrar a los recursos? 3. ¿Cómo establecer los verbos a utilizar? 4. ¿Es necesario versionar a las APIs?
  • 20. SPS Pharma API 19 1. Listado de Sucursales 2. Listado de Sucursal por ID 3. Ubicación de Sucursal por código postal 4. Validación de existencia por medicamento 5. Poner un pedido en una sucursal particular
  • 21. SPS Pharma API Blueprint 20
  • 22. SPS Pharma API Blueprint Recurso /farmacia 21
  • 23. SPS Pharma API Blueprint Recurso /farmacia (verbo GET) 22 ¿Pero qué le falta? a)¿Encabezados? b)¿Respuestas de falla? c) ¿Códigos de HTTP?
  • 24. SPS Pharma API Blueprint Recurso /farmacia (GET con un parámetro) 23 Se colocan ejemplos por cada sucursal. ¿Pero qué aprendimos en láminas pasadas sobre los parámetros? ¿Cómo lo podemos expresar?
  • 25. SPS Pharma API Blueprint Recurso /farmacia (GET con un parámetro) 24 Se colocan ejemplos por cada sucursal. ¿Pero qué aprendimos en láminas pasadas sobre los parámetros? ¿Cómo lo podemos expresar?
  • 26. SPS Pharma API Blueprint Recurso /farmacia/cp (GET con un parámetro) 25 Casi es el mismo recurso, pero hemos agregado /cp. Con este queremos obtener la lista de sucursales cercanas a un código postal. Falta agregar: 1. Errores 2. Excepciones
  • 27. SPS Pharma API Blueprint Recurso /farmacia/inventario (GET con un parámetro) 26 Con esto quiero recuperar la existencia de un medicamento. ¿Qué mas puedo agregar? ¿Encabezados?
  • 28. SPS Pharma API Blueprint Recurso /farmacia/pedido (POST) 27 Aquí nos faltan igualmente: 1. Errores 2. Excepciones 3. Media Types
  • 29. SPS Pharma API Blueprint Documentemos bien a nuestra API 28 Vamos a documentar cada recurso.
  • 30. SPS Pharma API Blueprint Documentemos bien a nuestra API 29 Podemos ir viendo el resultado, conforme vamos realizando la Documentación.
  • 31. SPS Pharma API Blueprint Probemos nuestra API 30 Esta es una gran característica de Apiary. No únicamente nos sirve para documentar/diseñar a nuestras APIs, pero también tenemos la capacidad de probarlas. Podemos: a) Probar desde la propia consola de Apiary b) Copiar el endpoint generado por Apiary y usarlo desde un navegador o desde Postman, por ejemplo.
  • 32. SPS Pharma API Blueprint Probando desde la Consola 31 Click sobre el recurso.
  • 33. SPS Pharma API Blueprint Probando desde la Consola 32 Click sobre este botón.
  • 34. SPS Pharma API Blueprint Probando desde la Consola 33 Headers. Después de dar click en el botón, simplemente hacemos scroll down y veremos lo siguiente:
  • 35. SPS Pharma API Blueprint Probando desde la Consola 34 Justo la respuesta que habíamos modelado. Mas abajo vemos:
  • 36. SPS Pharma API Blueprint Copiando el endpoint 35 Copia y pega esto en un navegador. Haz scroll hacia arriba y verás:
  • 37. SPS Pharma API Blueprint Copiando el endpoint 36 En este caso lo podemos hacer, debido a que es un GET.
  • 38. SPS Pharma API Blueprint Probando desde Postman 37 Usemos el recurso para colocar un pedido. El request lo copiamos de nuestra documentación. El verbo que usamos es POST. Veamos cómo la respuesta es la que colocamos.
  • 39. SPS Pharma API Blueprint Probando desde Postman 38 Modifica la respuesta desde APIARY y vuelve a probar el mismo recurso. Mira cómo la respuesta cambia:
  • 40. SPS Pharma API Blueprint Inspeccionado las llamadas 39 Apiary nos permite realizar una inspección de nuestras peticiones. Las que están en verde es porque fueron exitosas con respecto a la documentación. Las que están en naranja es que tuvieron un error.
  • 41. SPS Pharma API Blueprint Inspeccionado las llamadas con algún error 40 ¿Por qué nos marcó esto? En las primeras de llamadas desde el Postman, ¿qué content-type hemos utilizado? ¿Recuerdas? ¿Cuál habíamos colocado originalmente?
  • 42. SPS Pharma API Blueprint Integración con GitHub 41 Podemos integrar con Github para ir realizando los commits hacia un repositorio de manera automática. Así puedes ir promoviendo tus cambios a tu repositorio de GitHub. https://github.com/RCPDevChamp/oracle/blob/master/apiary.apib
  • 43. El rol del desarrollador 43 1. ¿Cómo vivimos actualmente? 2. ¿Gracias a qué podemos habilitar tantos servicios, APIs y aplicaciones? 3. ¿Cómo se lleva a cabo la interoperabilidad de las aplicaciones? Además de elementos con igual importancia como las redes y los dispositivos, el común denominador es código.
  • 44. CONTACTO S&P Solutions Rolando Carrasco rcarrasco@spsolutions.com.mx Twitter: @borland_c Blog: http://oracleradio.blogspot.com Web: http://www.spsolutions.com.mx