openapi

package
v0.0.0-...-fcd67d8 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package openapi provides OpenAPI 3.x document helpers generated from route metadata, plus Echo↔net/http adapter bridge utilities.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ChainStd

func ChainStd(h http.Handler, mws ...StdMiddleware) http.Handler

ChainStd applies stdlib middlewares around a handler (outer-first).

func EchoHandler

func EchoHandler(h http.Handler) echo.HandlerFunc

EchoHandler wraps a net/http Handler as an Echo handler via echo.WrapHandler.

func EchoHandlerFunc

func EchoHandlerFunc(h http.HandlerFunc) echo.HandlerFunc

EchoHandlerFunc wraps a net/http HandlerFunc as an Echo handler.

func EchoMiddleware

func EchoMiddleware(mw StdMiddleware) echo.MiddlewareFunc

EchoMiddleware converts a net/http middleware into Echo middleware via echo.WrapMiddleware.

func MountStd

func MountStd(e *echo.Echo, method, path string, h http.Handler, mws ...echo.MiddlewareFunc) *echo.Route

MountStd mounts a net/http Handler on an Echo route group/path using WrapHandler.

func StdHandler

func StdHandler(e *echo.Echo, h echo.HandlerFunc) http.HandlerFunc

StdHandler converts an Echo handler into a net/http HandlerFunc. The Echo instance is used only to create a context for the handler.

Types

type Components

type Components struct {
	Schemas         map[string]interface{} `json:"schemas,omitempty"`
	SecuritySchemes map[string]interface{} `json:"securitySchemes,omitempty"`
}

Components holds reusable schemas and security schemes.

type Document

type Document struct {
	OpenAPI    string               `json:"openapi"`
	Info       Info                 `json:"info"`
	Paths      map[string]*PathItem `json:"paths"`
	Components *Components          `json:"components,omitempty"`
	Tags       []Tag                `json:"tags,omitempty"`
}

Document is an OpenAPI 3 document.

func FromRoutes

func FromRoutes(title, version string, routes []RouteMeta) (*Document, error)

FromRoutes builds an OpenAPI document from route metadata.

func NewDocument

func NewDocument(title, version string) *Document

NewDocument creates an OpenAPI 3.0.3 document.

func (*Document) AddOperation

func (d *Document) AddOperation(path, method string, op Operation) error

AddOperation registers an operation on path (e.g. "/users", "get").

func (*Document) MarshalJSON

func (d *Document) MarshalJSON() ([]byte, error)

MarshalJSON returns the OpenAPI document as JSON.

type Info

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

Info holds API metadata.

type Operation

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

Operation describes a single HTTP operation.

type Parameter

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

Parameter is a minimal OpenAPI parameter object.

type PathItem

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

PathItem describes operations on a path.

type Response

type Response struct {
	Description string `json:"description"`
}

Response is a minimal response object.

type RouteMeta

type RouteMeta struct {
	Path        string
	Method      string
	OperationID string
	Summary     string
	Description string
	Tags        []string
	Parameters  []Parameter
	Responses   map[string]*Response
	Security    []map[string][]string
}

RouteMeta describes a single HTTP route for OpenAPI generation.

type Schema

type Schema struct {
	Type   string `json:"type,omitempty"`
	Format string `json:"format,omitempty"`
}

Schema is a minimal OpenAPI schema object.

type StdMiddleware

type StdMiddleware func(http.Handler) http.Handler

StdMiddleware is a standard library middleware function.

type Tag

type Tag struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
}

Tag is an OpenAPI tag object.

Jump to

Keyboard shortcuts

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