Help us shape the future of Go! Take the 2026 Go Developer Survey

openapi

package
v1.11.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GenerateOptions

type GenerateOptions struct {
	BaseURL     string
	IncludeTags []string
	ExcludeTags []string
	Prefix      string
}

GenerateOptions configures tool generation.

type GeneratedTool

type GeneratedTool struct {
	Name        string           `json:"name"`
	Description string           `json:"description"`
	Schema      types.ToolSchema `json:"schema"`
	Method      string           `json:"method"`
	Path        string           `json:"path"`
	BaseURL     string           `json:"base_url"`
	Parameters  []Parameter      `json:"parameters"`
	RequestBody *RequestBody     `json:"request_body,omitempty"`
}

GeneratedTool represents a tool generated from OpenAPI.

type Generator

type Generator struct {
	// contains filtered or unexported fields
}

Generator generates tools from OpenAPI specifications.

func NewGenerator

func NewGenerator(config GeneratorConfig, logger *zap.Logger) *Generator

NewGenerator creates a new OpenAPI tool generator.

func (*Generator) GenerateTools

func (g *Generator) GenerateTools(spec *OpenAPISpec, opts GenerateOptions) ([]*GeneratedTool, error)

GenerateTools generates tools from an OpenAPI spec.

func (*Generator) LoadSpec

func (g *Generator) LoadSpec(ctx context.Context, source string) (*OpenAPISpec, error)

LoadSpec loads an OpenAPI spec from URL or file path.

type GeneratorConfig

type GeneratorConfig struct {
	Timeout time.Duration
}

GeneratorConfig configures the generator.

type Info

type Info struct {
	Title       string `json:"title"`
	Description string `json:"description,omitempty"`
	Version     string `json:"version"`
}

Info contains API metadata.

type JSONSchema

type JSONSchema struct {
	Type        string                `json:"type,omitempty"`
	Description string                `json:"description,omitempty"`
	Properties  map[string]JSONSchema `json:"properties,omitempty"`
	Required    []string              `json:"required,omitempty"`
	Items       *JSONSchema           `json:"items,omitempty"`
	Enum        []any                 `json:"enum,omitempty"`
	Default     any                   `json:"default,omitempty"`
}

JSONSchema represents a JSON Schema.

type MediaType

type MediaType struct {
	Schema *JSONSchema `json:"schema,omitempty"`
}

MediaType represents a media type.

type OpenAPISpec

type OpenAPISpec struct {
	OpenAPI string              `json:"openapi"`
	Info    Info                `json:"info"`
	Servers []Server            `json:"servers,omitempty"`
	Paths   map[string]PathItem `json:"paths"`
}

OpenAPISpec represents a parsed OpenAPI specification.

type Operation

type Operation struct {
	OperationID string       `json:"operationId,omitempty"`
	Summary     string       `json:"summary,omitempty"`
	Description string       `json:"description,omitempty"`
	Parameters  []Parameter  `json:"parameters,omitempty"`
	RequestBody *RequestBody `json:"requestBody,omitempty"`
	Responses   Responses    `json:"responses,omitempty"`
	Tags        []string     `json:"tags,omitempty"`
}

Operation represents an API operation.

type Parameter

type Parameter struct {
	Name        string      `json:"name"`
	In          string      `json:"in"` // query, path, header, cookie
	Description string      `json:"description,omitempty"`
	Required    bool        `json:"required,omitempty"`
	Schema      *JSONSchema `json:"schema,omitempty"`
}

Parameter represents an operation parameter.

type PathItem

type PathItem struct {
	Get    *Operation `json:"get,omitempty"`
	Post   *Operation `json:"post,omitempty"`
	Put    *Operation `json:"put,omitempty"`
	Delete *Operation `json:"delete,omitempty"`
	Patch  *Operation `json:"patch,omitempty"`
}

PathItem represents operations on a path.

type RequestBody

type RequestBody struct {
	Description string               `json:"description,omitempty"`
	Required    bool                 `json:"required,omitempty"`
	Content     map[string]MediaType `json:"content,omitempty"`
}

RequestBody represents a request body.

type ResponseObj

type ResponseObj struct {
	Description string               `json:"description,omitempty"`
	Content     map[string]MediaType `json:"content,omitempty"`
}

ResponseObj represents a response.

type Responses

type Responses map[string]ResponseObj

Responses represents operation responses.

type Server

type Server struct {
	URL         string `json:"url"`
	Description string `json:"description,omitempty"`
}

Server represents an API server.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL