openapi

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.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "openapi" with this command: npx skills add oakoss/agent-skills/oakoss-agent-skills-openapi

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

github-cli

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

tanstack-cli

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

typescript-patterns

No summary provided by upstream source.

Repository SourceNeeds Review