openapi

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Nov 2, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OAS2        = "2.0"
	OAS3        = "3.0"
	ContentType = "application/json"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Components

type Components struct {
	Schemas map[string]Schema `json:"schemas"`
}

type Info

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

type MediaType

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

type OpenAPI

type OpenAPI struct {
	// oas 2.0 has swagger in the root.k
	Swagger    string              `json:"swagger,omitempty"`
	Openapi    string              `json:"openapi,omitempty"`
	Servers    []Server            `json:"servers,omitempty"`
	Info       Info                `json:"info"`
	Paths      map[string]PathItem `json:"paths"`
	Components Components          `json:"components,omitempty"`
	// oas 2.0 has definitions in the root.
	Definitions map[string]Schema `json:"definitions,omitempty"`
}

func FetchOpenAPI

func FetchOpenAPI(pathOrURL string) (*OpenAPI, error)

func (*OpenAPI) DereferenceSchema

func (o *OpenAPI) DereferenceSchema(schema Schema) (*Schema, error)

func (*OpenAPI) GetSchemaFromResponse

func (o *OpenAPI) GetSchemaFromResponse(r Response) *Schema

func (*OpenAPI) OASVersion

func (o *OpenAPI) OASVersion() string

type Operation

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

type Parameter

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

type PathItem

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

type RequestBody

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

type Response

type Response struct {
	Description string               `json:"description"`
	Content     map[string]MediaType `json:"content"`
	// oas 2.0 has the schema in the response.
	Schema *Schema `json:"schema,omitempty"`
}

type Schema

type Schema struct {
	Type         string            `json:"type"`
	Format       string            `json:"format,omitempty"`
	Items        *Schema           `json:"items,omitempty"`
	Properties   map[string]Schema `json:"properties,omitempty"`
	Ref          string            `json:"$ref,omitempty"`
	XAEPResource *XAEPResource     `json:"x-aep-resource,omitempty"`
	ReadOnly     bool              `json:"readOnly,omitempty"`
	Required     []string          `json:"required,omitempty"`
}

type Server

type Server struct {
	URL         string                    `json:"url"`
	Description string                    `json:"description,omitempty"`
	Variables   map[string]ServerVariable `json:"variables,omitempty"`
}

type ServerVariable

type ServerVariable struct {
	Enum        []string `json:"enum,omitempty"`
	Default     string   `json:"default"`
	Description string   `json:"description,omitempty"`
}

type XAEPResource

type XAEPResource struct {
	Singular string   `json:"singular,omitempty"`
	Plural   string   `json:"plural,omitempty"`
	Patterns []string `json:"patterns,omitempty"`
	Parents  []string `json:"parents,omitempty"`
}

Jump to

Keyboard shortcuts

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