The OpenAPI Standards Landscape: A Year of Innovation

A presentation at FOSDEM in February 2025 in Brussels, Belgium by Lorna Jane Mitchell

Slide 1

Slide 1

The OpenAPI Standards Landscape: A Year of Innovation Lorna Mitchell @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 2

Slide 2

OpenAPI Standards OpenAPI Intiative publishes three open standards for APIs: •OpenAPI: describe an API •Overlay: describe improvements to an API •Arazzo: describe a sequence of API calls @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 3

Slide 3

OpenAPI @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 4

Slide 4

OpenAPI How to describe an API: •overview •endpoints •requests •responses •security YAML or JSON format @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 5

Slide 5

Overlay @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 6

Slide 6

Overlays Improve OpenAPI Overlays describe a series of “actions” to update or remove parts of an OpenAPI description. Common use cases: •remove private/internal endpoints before publishing •improve summary/description/example values •add tool-specific extensions •fill in repeated content like error responses @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 7

Slide 7

Overlay Example Add a tag to all DELETE operations overlay: 1.0.0 info: title: Tag delete operations as restricted version: 1.0.0 actions: - target: $.paths.*.delete update: tags: - x-restricted Actions are executed in the order they are declared @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 8

Slide 8

API Description Pipelines OpenAPI description is not a single file. •combine sources into one description •improve and fill gaps if needed •send file to multiple destinations (docs, SDKs, etc) •apply destination-specific transforms on the way @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 9

Slide 9

Arazzo @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 10

Slide 10

Arazzo Arazzo describes sequences of API calls. Outline complex API workflows so that: •documentation can describe the steps •SDKs can wrap multiple API calls into one task •multi-step API scenarios can be tested @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 11

Slide 11

Arazzo Structure Arazzo describes: •workflows •containing steps •can reference OpenAPI descriptions •steps have success and failure criteria •input variables and step outputs can be used in later steps @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 12

Slide 12

Arazzo Example arazzo: 1.0.0 info: title: Public Zoo API version: ‘1.0’ sourceDescriptions: - name: animals type: openapi url: ./animals.yaml workflows: - workflowId: animal-workflow parameters: # … steps: - stepId: get-step operationId: $sourceDescriptions.animals.getRandomAnimal @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 13

Slide 13

Arazzo Workflows Use Arazzo: •for your own APIs •to improve integrations and consume APIs •for testing •and more to come @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 14

Slide 14

What’s Next in OpenAPI @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 15

Slide 15

What’s Next in OpenAPI •”soon” : OpenAPI 3.2 •additional security fields •path/URL templating improvements •extended and nested tags •”later”: OpenAPI 4.0 •project codename: Moonwalk @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 16

Slide 16

OpenAPI Community @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 17

Slide 17

OpenAPI Community Start here: https://openapis.org •Public GitHub activities •Slack for discussions •Regular public meetings for various groups •Newsletter to get some high-level updates @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 18

Slide 18

OpenAPI Landscape @lornajane@indieweb.social, @lornajane.net (bsky)

Slide 19

Slide 19

Resources •https://openapis.org •https://lornajane.net •https://apisyouwonthate.com/ @lornajane@indieweb.social, @lornajane.net (bsky)