How to import an Arazzo workflow in API Spector

Roy de Kleijn Roy de Kleijn · · 3 min read
How to import an Arazzo workflow in API Spector

Arazzo is the OpenAPI Initiative's specification for describing a sequence of API calls: the steps, the order, what each step checks, and the values it passes to the next one. It is a good way to write a workflow down once in a portable file. API Spector can read that file and turn it into a Flow you can run and edit.

Import the file

Open Import in the toolbar and choose Arazzo. Pick your .arazzo, .yaml, or .json workflow document. API Spector reads it, imports the OpenAPI specs it references so the steps have real requests to call, and builds one Flow for each workflow in the document. The Flow opens on the canvas when the import finishes.

What maps to what

The mapping follows the shape of Arazzo closely:

  • Each workflow becomes a Flow, and its inputs seed the Start block.
  • Each step becomes a Send Request block pointing at the imported operation, with the step's parameters and request body filled in. Values that reference an input or an earlier step, like {$inputs.petId} or {$steps.login.outputs.token}, come across as {{petId}} and {{token}}.
  • A step's successCriteria become a Validate block with the matching sp.test assertions.
  • A step's outputs become an Evaluate block that stores each value in a variable the later steps can use.
  • onSuccess and onFailure routing becomes the edges between blocks, so a goto lands on the right step and an end stops the flow.

Read the import notes

Arazzo uses runtime expressions such as $response.body#/token and $statusCode. The common forms translate directly. Anything the importer cannot map with confidence is left as a clearly marked placeholder and listed in the import notes, so you can see exactly what to finish by hand rather than discovering a silent gap later. When the notes are empty, the flow is ready to run.

After importing

The result is a normal Flow. You can open any block, adjust an assertion, add a Delay or an If, or wire in a Parallel block, and run it from the canvas or from the command line in CI. The imported requests live in a collection named after the workflow document, so you can send them on their own too.

Why it helps

An Arazzo file describes a workflow but does not run it. Bringing it into API Spector as a Flow turns the description into something you can execute, assert on, and change, while keeping the requests and the steps the document already defined.

Try it in API Spector

Free and open source. No account needed to use the app.

Keep reading