forked from ebhomengo/niki
59 lines
2.1 KiB
Go
59 lines
2.1 KiB
Go
package spec
|
|
|
|
// RequestBody describes a single request body.
|
|
//
|
|
// https://spec.openapis.org/oas/v3.1.0#request-body-object
|
|
//
|
|
// Example:
|
|
//
|
|
// description: user to add to the system
|
|
// content:
|
|
// 'application/json':
|
|
// schema:
|
|
// $ref: '#/components/schemas/User'
|
|
// examples:
|
|
// user:
|
|
// summary: User Example
|
|
// externalValue: 'https://foo.bar/examples/user-example.json'
|
|
// 'application/xml':
|
|
// schema:
|
|
// $ref: '#/components/schemas/User'
|
|
// examples:
|
|
// user:
|
|
// summary: User example in XML
|
|
// externalValue: 'https://foo.bar/examples/user-example.xml'
|
|
// 'text/plain':
|
|
// examples:
|
|
// user:
|
|
// summary: User example in Plain text
|
|
// externalValue: 'https://foo.bar/examples/user-example.txt'
|
|
// '*/*':
|
|
// examples:
|
|
// user:
|
|
// summary: User example in other format
|
|
// externalValue: 'https://foo.bar/examples/user-example.whatever'
|
|
type RequestBody struct {
|
|
// REQUIRED.
|
|
// The content of the request body.
|
|
// The key is a media type or [media type range]appendix-D) and the value describes it.
|
|
// For requests 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 brief description of the request body.
|
|
// This could contain examples of use.
|
|
// CommonMark syntax MAY be used for rich text representation.
|
|
Description string `json:"description,omitempty" yaml:"description,omitempty"`
|
|
// Determines if the request body is required in the request.
|
|
// Defaults to false.
|
|
Required bool `json:"required,omitempty" yaml:"required,omitempty"`
|
|
}
|
|
|
|
// NewRequestBodySpec creates RequestBody object.
|
|
func NewRequestBodySpec() *RefOrSpec[Extendable[RequestBody]] {
|
|
return NewRefOrSpec[Extendable[RequestBody]](nil, NewExtendable(&RequestBody{}))
|
|
}
|
|
|
|
// NewRequestBodyRef creates Ref object.
|
|
func NewRequestBodyRef(ref *Ref) *RefOrSpec[Extendable[RequestBody]] {
|
|
return NewRefOrSpec[Extendable[RequestBody]](ref, nil)
|
|
}
|