openapi

package
v0.17.2 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2026 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ApiProblemSchema = `` /* 587-byte string literal not displayed */

)

Variables

This section is empty.

Functions

func AddPredefinedController

func AddPredefinedController(builder *DocumentBuilder, ctrl *server.PredefinedController, opts server.ControllerOpts)

func AddResourceController

func AddResourceController(builder *DocumentBuilder, ctrl *server.ResourceController, opts server.ControllerOpts)

func GetPatchBodySchema

func GetPatchBodySchema(patches []store.Patch) []byte

Types

type Components

type Components struct {
	Responses map[string]SchemaItem `json:"responses,omitempty"`
	Schemas   map[string]SchemaItem `json:"schemas,omitempty"`
}

type Document

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

func NewDocument

func NewDocument() *Document

func (*Document) Write

func (d *Document) Write(path string) error

type DocumentBuilder

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

func NewDocumentBuilder

func NewDocumentBuilder() *DocumentBuilder

func (*DocumentBuilder) AddNewPath

func (b *DocumentBuilder) AddNewPath(path string) *PathItemBuilder

func (*DocumentBuilder) AddPath

func (b *DocumentBuilder) AddPath(path string, pathItem *PathItem) *DocumentBuilder

func (*DocumentBuilder) AddResponse

func (b *DocumentBuilder) AddResponse(statusCode string, schemaItem SchemaItem) *DocumentBuilder

func (*DocumentBuilder) AddSchemaBytes

func (b *DocumentBuilder) AddSchemaBytes(name string, schemaBytes []byte) (*DocumentBuilder, error)

func (*DocumentBuilder) AddSchemaBytesOrDie

func (b *DocumentBuilder) AddSchemaBytesOrDie(name string, schemaBytes []byte) *DocumentBuilder

func (*DocumentBuilder) AddSchemaItem

func (b *DocumentBuilder) AddSchemaItem(name string, schemaItem SchemaItem) *DocumentBuilder

func (*DocumentBuilder) AddServer

func (b *DocumentBuilder) AddServer(url, description string) *DocumentBuilder

func (*DocumentBuilder) Build

func (b *DocumentBuilder) Build() *Document

func (*DocumentBuilder) BuildBytes

func (b *DocumentBuilder) BuildBytes() ([]byte, error)

func (*DocumentBuilder) NewInfo

func (b *DocumentBuilder) NewInfo(title, description, version string) *DocumentBuilder

func (*DocumentBuilder) SetOpenapiVersion

func (b *DocumentBuilder) SetOpenapiVersion(version string) *DocumentBuilder

type Info

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

type MediaType

type MediaType struct {
	Schema *SchemaItem `json:"schema"`
}

type OpenAPIController

type OpenAPIController struct {
	Document *Document
}

func NewOpenAPIController

func NewOpenAPIController(doc *Document) *OpenAPIController

func (*OpenAPIController) GetOpenAPI

func (r *OpenAPIController) GetOpenAPI(c *fiber.Ctx) error

func (*OpenAPIController) Register

func (r *OpenAPIController) Register(router fiber.Router, opts server.ControllerOpts)

type Operation

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

type OperationBuilder

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

func NewOperationBuilder

func NewOperationBuilder() *OperationBuilder

func (*OperationBuilder) AddParameter

func (b *OperationBuilder) AddParameter(parameter *Parameter) *OperationBuilder

func (*OperationBuilder) AddTags

func (b *OperationBuilder) AddTags(tags ...string) *OperationBuilder

func (*OperationBuilder) Build

func (b *OperationBuilder) Build() *Operation

func (*OperationBuilder) SetCustomRequestBody

func (b *OperationBuilder) SetCustomRequestBody(contentType string, SchemaItem SchemaItem) *OperationBuilder

func (*OperationBuilder) SetCustomResponse

func (b *OperationBuilder) SetCustomResponse(statusCode, contentType string, SchemaItem SchemaItem) *OperationBuilder

func (*OperationBuilder) SetDescription

func (b *OperationBuilder) SetDescription(description string) *OperationBuilder

func (*OperationBuilder) SetJsonRequestBody

func (b *OperationBuilder) SetJsonRequestBody(SchemaItem SchemaItem) *OperationBuilder

func (*OperationBuilder) SetJsonRequestBodyBytes

func (b *OperationBuilder) SetJsonRequestBodyBytes(SchemaItemBytes []byte) *OperationBuilder

func (*OperationBuilder) SetJsonResponse

func (b *OperationBuilder) SetJsonResponse(statusCode string, SchemaItem SchemaItem) *OperationBuilder

func (*OperationBuilder) SetJsonResponseBytes

func (b *OperationBuilder) SetJsonResponseBytes(statusCode string, SchemaItemBytes []byte) *OperationBuilder

func (*OperationBuilder) SetMeta

func (b *OperationBuilder) SetMeta(summary, operationId string) *OperationBuilder

type Parameter

type Parameter struct {
	Name        string      `json:"name"`
	In          string      `json:"in"`
	Description string      `json:"description"`
	Required    bool        `json:"required"`
	Schema      *SchemaItem `json:"schema"`
}

func GetFilterParameters

func GetFilterParameters(filters []store.Filter) []*Parameter

type ParameterBuilder

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

func NewParameterBuilder

func NewParameterBuilder() *ParameterBuilder

func (*ParameterBuilder) Build

func (b *ParameterBuilder) Build() *Parameter

func (*ParameterBuilder) SetDescription

func (b *ParameterBuilder) SetDescription(description string) *ParameterBuilder

func (*ParameterBuilder) SetIn

func (*ParameterBuilder) SetName

func (b *ParameterBuilder) SetName(name string) *ParameterBuilder

func (*ParameterBuilder) SetRequired

func (b *ParameterBuilder) SetRequired(required bool) *ParameterBuilder

func (*ParameterBuilder) SetSchema

func (b *ParameterBuilder) SetSchema(SchemaItem SchemaItem) *ParameterBuilder

type PathItem

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

type PathItemBuilder

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

func NewPathItemBuilder

func NewPathItemBuilder() *PathItemBuilder

func (*PathItemBuilder) Build

func (b *PathItemBuilder) Build() *PathItem

func (*PathItemBuilder) SetOperation

func (b *PathItemBuilder) SetOperation(method string, operation *Operation) *PathItemBuilder

type RequestBody

type RequestBody struct {
	Content map[string]*MediaType `json:"content"`
}

type Response

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

type Responses

type Responses map[string]*Response

type SchemaItem

type SchemaItem map[string]any

func NewArrayOfSchemaItemWithRef

func NewArrayOfSchemaItemWithRef(ref SchemaItem) SchemaItem

func NewSchemaItemResponseRef

func NewSchemaItemResponseRef(statusCode string) (string, SchemaItem)

func NewSchemaItemSchemaRef

func NewSchemaItemSchemaRef(name string) SchemaItem

func NewSchemaItemType

func NewSchemaItemType(schemaType string) SchemaItem

func (SchemaItem) AddAttribute

func (s SchemaItem) AddAttribute(name string, value any) SchemaItem

type Server

type Server struct {
	Url         string `json:"url"`
	Description string `json:"description"`
}

type Tag

type Tag struct {
	Name string `json:"name"`
}

Jump to

Keyboard shortcuts

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