12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package common
- // RouteContainer is the entrypoint for a service, which may contain multiple
- // routes under a common path with a common set of path parameters.
- type RouteContainer interface {
- // RootPath is the path that all contained routes are nested under.
- RootPath() string
- // PathParameters are common parameters defined in the root path.
- PathParameters() []Parameter
- // Routes are all routes exposed under the root path.
- Routes() []Route
- }
- // Route is a logical endpoint of a service.
- type Route interface {
- // Method defines the HTTP Method.
- Method() string
- // Path defines the route's endpoint.
- Path() string
- // OperationName defines a machine-readable ID for the route.
- OperationName() string
- // Parameters defines the list of accepted parameters.
- Parameters() []Parameter
- // Description is a human-readable route description.
- Description() string
- // Consumes defines the consumed content-types.
- Consumes() []string
- // Produces defines the produced content-types.
- Produces() []string
- // Metadata allows adding extensions to the generated spec.
- Metadata() map[string]interface{}
- // RequestPayloadSample defines an example request payload. Can return nil.
- RequestPayloadSample() interface{}
- // ResponsePayloadSample defines an example response payload. Can return nil.
- ResponsePayloadSample() interface{}
- // StatusCodeResponses defines a mapping of HTTP Status Codes to the specific response(s).
- // Multiple responses with the same HTTP Status Code are acceptable.
- StatusCodeResponses() []StatusCodeResponse
- }
- // StatusCodeResponse is an explicit response type with an HTTP Status Code.
- type StatusCodeResponse interface {
- // Code defines the HTTP Status Code.
- Code() int
- // Message returns the human-readable message.
- Message() string
- // Model defines an example payload for this response.
- Model() interface{}
- }
- // Parameter is a Route parameter.
- type Parameter interface {
- // Name defines the unique-per-route identifier.
- Name() string
- // Description is the human-readable description of the param.
- Description() string
- // Required defines if this parameter must be provided.
- Required() bool
- // Kind defines the type of the parameter itself.
- Kind() ParameterKind
- // DataType defines the type of data the parameter carries.
- DataType() string
- // AllowMultiple defines if more than one value can be supplied for the parameter.
- AllowMultiple() bool
- }
- // ParameterKind is an enum of route parameter types.
- type ParameterKind int
- const (
- // PathParameterKind indicates the request parameter type is "path".
- PathParameterKind = ParameterKind(iota)
- // QueryParameterKind indicates the request parameter type is "query".
- QueryParameterKind
- // BodyParameterKind indicates the request parameter type is "body".
- BodyParameterKind
- // HeaderParameterKind indicates the request parameter type is "header".
- HeaderParameterKind
- // FormParameterKind indicates the request parameter type is "form".
- FormParameterKind
- // UnknownParameterKind indicates the request parameter type has not been specified.
- UnknownParameterKind
- )
|