openapi

v2026.09.24

OpenAPI 3.1 specification, schema design, and code generation. Use when designing REST APIs, generating TypeScript clients, or creating API documentation. Use for openapi, swagger, api-spec, schema, code-generation, api-docs, openapi-typescript, zod-openapi.

GitHub
Install command
npx skhub add oakoss/openapi
Markdown
SKILL.md

OpenAPI

Overview

OpenAPI Specification (OAS) 3.1 is the industry standard for describing HTTP APIs. It defines a machine-readable contract covering endpoints, request/response schemas, authentication, and error formats. OpenAPI 3.1 is a strict superset of JSON Schema Draft 2020-12, enabling full JSON Schema compatibility for data validation and type generation.

When to use: Designing REST APIs, generating typed clients (TypeScript, Python, Go), producing interactive documentation, validating request/response payloads, contract-first API development, API gateway configuration.

When NOT to use: GraphQL APIs (use the GraphQL schema), gRPC services (use Protocol Buffers), WebSocket-only protocols, internal function calls that never cross a network boundary.

Quick Reference

PatternElementKey Points
Document rootopenapi, info, pathsopenapi: '3.1.0' required at top level
Path item/resources/{id}Curly braces for path parameters
Operationget, post, put, delete, patchEach operation needs operationId and responses
Parametersin: path|query|header|cookiePath params are always required: true
Request bodyrequestBody.contentKeyed by media type (application/json)
Responseresponses.200.contentAt least one response required per operation
Component ref$ref: '#/components/schemas/Name'Reuse schemas, parameters, responses
Schema typestype: string|number|integer|boolean|array|objectArrays support type: ["string", "null"] in 3.1
CompositiononeOf, anyOf, allOfModel polymorphism and intersection types
Discriminatordiscriminator.propertyNameHint for code generators with oneOf/anyOf
SecuritysecuritySchemes + top-level securityBearer, API key, OAuth2, OpenID Connect
Tagstags on operationsGroup operations for documentation
Type generationopenapi-typescriptZero-runtime TypeScript types from spec
Typed fetchopenapi-fetchType-safe HTTP client using generated types
React Queryopenapi-react-queryType-safe React Query hooks from spec
Schema-firstzod-openapiGenerate OpenAPI documents from Zod schemas

Common Mistakes

MistakeCorrect Pattern
Using nullable: true in 3.1Use type: ["string", "null"] (3.0 syntax removed)
Missing operationId on operationsAlways set unique operationId for code generation
Path parameter not in requiredPath parameters are always required (required: true)
Inline schemas everywhereExtract to components/schemas and use $ref
allOf with conflicting required fieldsMerge required arrays; allOf unions them
Discriminator without shared propertyAll schemas in oneOf/anyOf must include the discriminator property
Empty description on responsesEvery response needs a meaningful description
Using type: object without propertiesAlways define properties or use additionalProperties
Circular $ref chainsBreak cycles with lazy resolution or restructure schemas
Mixing 3.0 and 3.1 syntaxChoose one version; 3.1 drops nullable, changes exclusiveMinimum to number

Delegation

  • API design review: Use Task agent to audit spec completeness and consistency
  • Type generation: Use Explore agent to find project-specific OpenAPI tooling config
  • Code review: Delegate to code-reviewer agent for generated client usage patterns

If the typescript-patterns skill is available, delegate advanced TypeScript typing questions to it.

References

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/openapi

Default branch

main

Latest commit

85e3a39

Tree SHA

a4c9e7b