package genopenapi

import "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/internal/genopenapi"

Package genopenapi provides a code generator for OpenAPI v2.

Index

Functions

func AddErrorDefs

func AddErrorDefs(reg *descriptor.Registry) error

AddErrorDefs Adds google.rpc.Status and google.protobuf.Any to registry (used for error-related API responses)

func LookupNamingStrategy

func LookupNamingStrategy(strategyName string) func([]string) map[string]string

LookupNamingStrategy looks up the given naming strategy and returns the naming strategy function for it. The naming strategy function takes in the list of all fully-qualified proto message names, and returns a mapping from fully-qualified name to OpenAPI name.

func New

func New(reg *descriptor.Registry, format Format) gen.Generator

New returns a new generator which generates grpc gateway files.

Types

type ContentEncoder

type ContentEncoder interface {
	Encode(v interface{}) (err error)
}

type Format

type Format string
const (
	FormatJSON Format = "json"
	FormatYAML Format = "yaml"
)

func (Format) NewEncoder

func (f Format) NewEncoder(w io.Writer) (ContentEncoder, error)

func (Format) Validate

func (f Format) Validate() error

type GeneratorOptions

type GeneratorOptions struct {
	Registry       *descriptor.Registry
	RecursiveDepth int
}

type RawExample

type RawExample json.RawMessage

func (RawExample) MarshalJSON

func (m RawExample) MarshalJSON() ([]byte, error)

func (RawExample) MarshalYAML

func (e RawExample) MarshalYAML() (interface{}, error)

MarshalYAML implements yaml.Marshaler interface.

It converts RawExample to one of yaml-supported types and returns it.

From yaml.Marshaler docs: The Marshaler interface may be implemented by types to customize their behavior when being marshaled into a YAML document. The returned value is marshaled in place of the original value implementing Marshaler.

func (*RawExample) UnmarshalJSON

func (m *RawExample) UnmarshalJSON(data []byte) error

Source Files

doc.go format.go generator.go helpers.go naming.go template.go types.go

Version
v2.26.1 (latest)
Published
Feb 7, 2025
Platform
linux/amd64
Imports
36 packages
Last checked
6 days ago

Tools for package owners.