forked from ebhomengo/niki
43 lines
1.9 KiB
Go
43 lines
1.9 KiB
Go
package spec
|
|
|
|
// Response describes a single response from an API Operation, including design-time, static links to operations based on the response.
|
|
//
|
|
// https://spec.openapis.org/oas/v3.1.0#response-object
|
|
//
|
|
// Example:
|
|
//
|
|
// description: A complex object array response
|
|
// content:
|
|
// application/json:
|
|
// schema:
|
|
// type: array
|
|
// items:
|
|
// $ref: '#/components/schemas/VeryComplexType'
|
|
type Response struct {
|
|
// Maps a header name to its definition.
|
|
// [RFC7230] states header names are case insensitive.
|
|
// If a response header is defined with the name "Content-Type", it SHALL be ignored.
|
|
Headers map[string]*RefOrSpec[Extendable[Header]] `json:"headers,omitempty" yaml:"headers,omitempty"`
|
|
// A map containing descriptions of potential response payloads.
|
|
// The key is a media type or [media type range]appendix-D) and the value describes it.
|
|
// For responses that match multiple keys, only the most specific key is applicable. e.g. text/plain overrides text/*
|
|
Content map[string]*Extendable[MediaType] `json:"content,omitempty" yaml:"content,omitempty"`
|
|
// A map of operations links that can be followed from the response.
|
|
// The key of the map is a short name for the link, following the naming constraints of the names for Component Objects.
|
|
Links map[string]*RefOrSpec[Extendable[Link]] `json:"links,omitempty" yaml:"links,omitempty"`
|
|
// REQUIRED.
|
|
// A description of the response.
|
|
// CommonMark syntax MAY be used for rich text representation.
|
|
Description string `json:"description,omitempty" yaml:"description,omitempty"`
|
|
}
|
|
|
|
// NewResponseSpec creates Response object.
|
|
func NewResponseSpec() *RefOrSpec[Extendable[Response]] {
|
|
return NewRefOrSpec[Extendable[Response]](nil, NewExtendable(&Response{}))
|
|
}
|
|
|
|
// NewResponseRef creates Ref object.
|
|
func NewResponseRef(ref *Ref) *RefOrSpec[Extendable[Response]] {
|
|
return NewRefOrSpec[Extendable[Response]](ref, nil)
|
|
}
|