Slide 1

Slide 1 text

90% De los developers usan APIs @benjagm 19th Developer Economics Survey - Slashdata

Slide 2

Slide 2 text

La magia de OpenAPI Specification Benjamin Granados (he/him) Developer Evangelist @benjagm

Slide 3

Slide 3 text

Las APIs hacen la vida más fácil a los developers @benjagm

Slide 4

Slide 4 text

@benjagm API Styles gRPC REST graphQL Async

Slide 5

Slide 5 text

Un poco de historia 2015 OpenAPI initiative GraphQL gRPC 2021 OpenAPI 3.1.0 2000 WSDL 2010 Swagger 2017 OpenAPI 3.0.0 AsyncAPI 2005 WADL @benjagm Raml

Slide 6

Slide 6 text

@benjagm

Slide 7

Slide 7 text

OpenAPI Specification @benjagm OpenAPI v3.0 servers security info paths tags externalDocs components

Slide 8

Slide 8 text

¿Por qué OpenAPI es tan importante? @benjagm Confiable: Estabilidad + Base de usuarios enorme Mejor Developer Experience Facilita el gobierno y la colaboración

Slide 9

Slide 9 text

Spec-Driven Dev 👍 Implementation first 🤞 @benjagm

Slide 10

Slide 10 text

@benjagm OpenAPI Specification alimenta el ciclo de vida de las APIs https://www.youtube.com/watch?v=-X1X7HuFHSg

Slide 11

Slide 11 text

@benjagm Validate Format Validate Examples OpenAPI Spec Design OpenAPI Spec generated Codegen Mocking Docs Testing Monitoring + Security Client + SDK Postman Microcks Prism Redocly Rapidoc Swagger docs Postman Dredd Schemathesis Microcks OpenAPI Specification alimenta el ciclo de vida de las APIs

Slide 12

Slide 12 text

API Ops Diseñar, desarrollar, probar y desplegar APIs más rápido, más veces y mejor. @benjagm

Slide 13

Slide 13 text

Encontrando las herramientas adecuadas https://openapi.tools/ Tool Types ● Auto Generators: Tools that will take your code and turn it into an OpenAPI Specification document. ● Converters: Various tools to convert to and from OpenAPI and other API description formats. ● Data Validators: Check to see if API requests and responses are lining up with the API description. ● Description Validators: Check your API description to see if it is valid OpenAPI. ● Documentation: Render API Description as HTML (or maybe a PDF) so slightly less technical people can figure out how to work with the API. ● DSL: Domain Specific Language to write OpenAPI in your language of choice. ● GUI Editors: Visual editors help you design APIs without needing to memorize the entire OpenAPI specification. ● Miscellaneous: Anything else that does stuff with OpenAPI but hasn't quite got enough to warrant its own category. ● Mock Servers: Fake servers that take description document as input, then route incoming HTTP requests to example responses. ● Parsers: Loads and read OpenAPI descriptions, so you can work with them programmatically. ● SDK Generators: Generate code to give to consumers, to help them avoid interacting at a HTTP level. ● Security: By poking around your OpenAPI description, some tools can look out for attack vectors you might not have noticed. ● Server Implementations: Easily create and implement resources and routes for your APIs. ● Testing: Quickly execute API requests and validate responses on the fly through command line or GUI interfaces. ● Text Editors: Text editors give you visual feedback whilst you write OpenAPI, so you can see what docs might look like. ● Learning: Whether you're trying to get documentation for a third party API based on traffic, or are trying to switch to design-first at an organization with no OpenAPI at all, learning can help you move your API spec forward and keep it up to date @benjagm

Slide 14

Slide 14 text

Linting con Spectral @benjagm https://github.com/stoplightio/spectral

Slide 15

Slide 15 text

Mocking con Prims @benjagm https://github.com/stoplightio/prism

Slide 16

Slide 16 text

Presente de OpenAPI (Version 3.1) @benjagm Reusabilidad Mejor especificación de Webhooks Compatibilidad completa con JSON Schema

Slide 17

Slide 17 text

Presente de OpenAPI (Version 3.1) @benjagm Webhooks como campos de nivel superior Path items reutilizables

Slide 18

Slide 18 text

Agenda OpenAPI para futuras versiones @benjagm Soporte para RPC sobre HTTP Terminar la especificación de Overlay

Slide 19

Slide 19 text

Que retos enfrenta OpenAPI @benjagm Completar la migración de Swagger a OpenAPI Transición a un modelo de gobierno más democrático

Slide 20

Slide 20 text

Claves @benjagm Completar la migración de Swagger a OpenAPI Importancia de apoyarse en el tooling del ecosistema OpenAPI 3.1 es una buena versión

Slide 21

Slide 21 text

Recursos @benjagm https://github.com/benjagm/pycones22-openapi-pow Introduction to OpenAPI Initiative here What is OpenAPI Specification here Benefits of OpenAPI Specification here Standarized API Lifecycle here Changelog OAS 3.1.0 here Introduction to OAS 3.1.0 here Swagger vs OpenAPI here Introduction to Specification Driven development here Documentation-driven development for Python web APIs v2 here OpenAPI Specification as Mentos & Coke video here

Slide 22

Slide 22 text

Thank you