Skip to content

oastools Examples

Complete, runnable examples demonstrating the full oastools ecosystem across parsing, validation, transformation, and code generation.

Quick Start

Time Category Example Description
2 min Getting Started quickstart/ Parse and validate a minimal spec
5 min Getting Started validation-pipeline/ Complete validation with error reporting
5 min Workflows pipeline-compositions/ Chain multiple oastools operations
5 min Workflows fixer-showcase/ All available fix types demonstrated
3 min Workflows validate-and-fix/ Auto-fix common spec errors
3 min Workflows version-conversion/ Convert OAS 2.0 β†’ 3.0.3
4 min Workflows version-migration/ OAS 3.1/3.2 upgrades and downgrades
4 min Workflows multi-api-merge/ Merge microservice specs
3 min Workflows collision-resolution/ Handle schema collisions
3 min Workflows schema-deduplication/ Consolidate identical schemas
4 min Workflows schema-renaming/ Preserve both schemas with renaming
4 min Workflows breaking-change-detection/ CI/CD breaking change gates
3 min Workflows overlay-transformations/ Environment-specific customizations
5 min Workflows http-validation/ Runtime request/response validation
5 min Programmatic API builder/ Build specs from Go code + ServerBuilder
3 min Walker api-statistics/ Collect API statistics in single pass
4 min Walker security-audit/ Audit API for security issues
3 min Walker vendor-extensions/ Add vendor extensions for tooling
3 min Walker public-api-filter/ Filter internal endpoints
4 min Walker api-documentation/ Generate Markdown documentation
4 min Walker reference-collector/ Analyze schema references
10 min Code Generation petstore/ Full client/server generation

Examples by Category

Getting Started

Best for first-time users learning oastools.

Example Description
quickstart/ 100-line example demonstrating parse β†’ validate workflow
validation-pipeline/ Complete validation with source maps and severity classification

Workflow Examples

Common OpenAPI transformation patterns covering 6 packages.

Example Package Description
pipeline-compositions/ multiple Chain convert→fix→join→generate pipelines
fixer-showcase/ fixer All 6 fix types with before/after
validate-and-fix/ fixer Parse, validate, auto-fix common errors
version-conversion/ converter Convert OAS 2.0 (Swagger) β†’ OAS 3.0.3
version-migration/ converter OAS 3.1/3.2 upgrades, lossy downgrades
multi-api-merge/ joiner Merge specs with collision resolution
collision-resolution/ joiner fail-on-collision, accept-left, accept-right
schema-deduplication/ joiner deduplicate-equivalent, semantic-dedup
schema-renaming/ joiner rename-left/right, templates, namespaces
breaking-change-detection/ differ Detect breaking changes between versions
overlay-transformations/ overlay Apply JSONPath-based transformations
http-validation/ httpvalidator Runtime HTTP request/response validation

Programmatic API

Build OpenAPI specifications from Go code.

Example Package Description
builder/ builder Fluent API + ServerBuilder for runnable servers

Walker Examples

Document traversal patterns for analysis, mutation, and filtering.

Example Category Description
api-statistics/ Analysis Collect API statistics in a single traversal pass
security-audit/ Validation Audit API for security issues and compliance
vendor-extensions/ Mutation Add vendor extensions for downstream tooling
public-api-filter/ Filtering Extract public API, filter internal endpoints
api-documentation/ Reporting Generate Markdown documentation from spec
reference-collector/ Integration Collect schema references and detect cycles

Code Generation

Generate production-ready Go client and server code.

Example Description
petstore/ Complete code generation with OAuth2, OIDC, chi router

Feature Matrix

Feature quickstart validation-pipeline workflows builder walker petstore
Parser API βœ“ βœ“ βœ“ βœ“
Validator API βœ“ βœ“ βœ“ βœ“
Fixer API βœ“
Converter API βœ“
Joiner API βœ“
Differ API βœ“
Overlay API βœ“
HTTPValidator API βœ“
Builder API βœ“
ServerBuilder βœ“
Walker API βœ“
Source Maps βœ“
Code Generation βœ“
Client Generation βœ“
Server Generation βœ“
OAuth2 Flows βœ“
OIDC Discovery βœ“

Package Coverage: 11/11 packages demonstrated

OAS Version Coverage

Version Examples
OAS 2.0 (Swagger) petstore, version-conversion
OAS 3.0.x quickstart, all workflows
OAS 3.2.0 builder
Any version validation-pipeline (accepts any OAS file)

Running Examples

Each example is a standalone Go module. To run any example:

cd examples/<category>/<example-name>
go run main.go

Or build and run:

cd examples/<category>/<example-name>
go build -o example .
./example

Common Patterns

Parse-Once Optimization

All workflow examples demonstrate the parse-once pattern:

parsed, _ := parser.ParseWithOptions(parser.WithFilePath("spec.yaml"))

// Reuse for multiple operations (9-154x faster)
fixer.FixWithOptions(fixer.WithParsed(parsed))
validator.ValidateWithOptions(validator.WithParsed(parsed))

Functional Options

All packages use the functional options pattern:

result, err := converter.ConvertWithOptions(
    converter.WithFilePath("swagger.yaml"),
    converter.WithTargetVersion("3.0.3"),
)

Learn More


Generated for oastools