Documentation
¶
Index ¶
- Constants
- Variables
- func SchemaPath(r *http.Request) (string, bool)
- func SpecFileHandler() http.Handler
- type API
- type Client
- func (c *Client) GetPets(ctx context.Context, request GetPetsRequest) (GetPetsResponse, error)
- func (c *Client) GetPetsPetID(ctx context.Context, request GetPetsPetIDRequest) (GetPetsPetIDResponse, error)
- func (c *Client) PostPets(ctx context.Context, request PostPetsRequest) (PostPetsResponse, error)
- type ErrParseParam
- type Error
- type GetPetsHandlerFunc
- type GetPetsPetIDHandlerFunc
- type GetPetsPetIDRequest
- type GetPetsPetIDRequestParser
- type GetPetsPetIDResponse
- type GetPetsPetIDResponse200JSON
- type GetPetsPetIDResponseDefaultJSON
- type GetPetsRequest
- type GetPetsRequestParser
- type GetPetsResponse
- type GetPetsResponse200JSON
- type GetPetsResponseDefaultJSON
- type HTTPClient
- type Pet
- type Pets
- type PostPetsHandlerFunc
- type PostPetsRequest
- type PostPetsRequestParser
- type PostPetsResponse
- type PostPetsResponse201
- type PostPetsResponseDefaultJSON
Examples ¶
Constants ¶
View Source
const SpecFile string = `` /* 2614-byte string literal not displayed */
Variables ¶
Functions ¶
func SpecFileHandler ¶
Types ¶
type API ¶
type API struct {
GetPetsHandler GetPetsHandlerFunc
PostPetsHandler PostPetsHandlerFunc
GetPetsPetIDHandler GetPetsPetIDHandlerFunc
// not found
NotFoundHandler http.Handler
// spec file
SpecFileHandler http.Handler
Middlewares []func(h http.Handler) http.Handler
}
Example (PetsStore) ¶
package main
import (
"context"
"fmt"
"net/http"
)
var db interface {
GetPet(_ context.Context, id string) (Pet, error)
}
func main() {
api := &API{
GetPetsPetIDHandler: func(r GetPetsPetIDRequestParser) GetPetsPetIDResponse {
req, err := r.Parse()
if err != nil {
return NewGetPetsPetIDResponseDefaultJSON(http.StatusBadRequest, Error{
Code: 400,
Message: fmt.Sprintf("Bad request: %v", err),
})
}
out, err := db.GetPet(req.HTTPRequest.Context(), req.Path.PetID)
if err != nil {
return NewGetPetsPetIDResponseDefaultJSON(http.StatusInternalServerError, Error{
Code: 500,
Message: fmt.Sprintf("Internal server error: %v", err),
})
}
return NewGetPetsPetIDResponse200JSON(out)
},
// ...
}
_ = http.ListenAndServe(":8080", api)
}
Output:
type Client ¶
type Client struct {
HTTPClient HTTPClient
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(baseURL string, httpClient HTTPClient) *Client
func (*Client) GetPets ¶
func (c *Client) GetPets(ctx context.Context, request GetPetsRequest) (GetPetsResponse, error)
func (*Client) GetPetsPetID ¶
func (c *Client) GetPetsPetID(ctx context.Context, request GetPetsPetIDRequest) (GetPetsPetIDResponse, error)
func (*Client) PostPets ¶
func (c *Client) PostPets(ctx context.Context, request PostPetsRequest) (PostPetsResponse, error)
type ErrParseParam ¶
func (ErrParseParam) Error ¶
func (e ErrParseParam) Error() string
func (ErrParseParam) Unwrap ¶
func (e ErrParseParam) Unwrap() error
type GetPetsHandlerFunc ¶
type GetPetsHandlerFunc func(r GetPetsRequestParser) GetPetsResponse
GetPetsHandlerFunc - List all pets
func (GetPetsHandlerFunc) ServeHTTP ¶
func (f GetPetsHandlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request)
type GetPetsPetIDHandlerFunc ¶
type GetPetsPetIDHandlerFunc func(r GetPetsPetIDRequestParser) GetPetsPetIDResponse
GetPetsPetIDHandlerFunc - Info for a specific pet
func (GetPetsPetIDHandlerFunc) ServeHTTP ¶
func (f GetPetsPetIDHandlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request)
type GetPetsPetIDRequest ¶
type GetPetsPetIDRequest struct {
HTTPRequest *http.Request
Path struct {
// PetID - The id of the pet to retrieve
PetID string
}
}
func (GetPetsPetIDRequest) Parse ¶
func (r GetPetsPetIDRequest) Parse() (GetPetsPetIDRequest, error)
type GetPetsPetIDRequestParser ¶
type GetPetsPetIDRequestParser interface {
Parse() (GetPetsPetIDRequest, error)
}
func GetPetsPetIDHTTPRequest ¶
func GetPetsPetIDHTTPRequest(r *http.Request) GetPetsPetIDRequestParser
type GetPetsPetIDResponse ¶
type GetPetsPetIDResponse interface {
Write(w http.ResponseWriter)
// contains filtered or unexported methods
}
func NewGetPetsPetIDResponse200JSON ¶
func NewGetPetsPetIDResponse200JSON(body Pet) GetPetsPetIDResponse
func NewGetPetsPetIDResponseDefaultJSON ¶
func NewGetPetsPetIDResponseDefaultJSON(code int, body Error) GetPetsPetIDResponse
type GetPetsPetIDResponse200JSON ¶
type GetPetsPetIDResponse200JSON struct {
Body Pet
}
GetPetsPetIDResponse200JSON - Expected response to a valid request
func (GetPetsPetIDResponse200JSON) Write ¶
func (r GetPetsPetIDResponse200JSON) Write(w http.ResponseWriter)
type GetPetsPetIDResponseDefaultJSON ¶
GetPetsPetIDResponseDefaultJSON - unexpected error
func (GetPetsPetIDResponseDefaultJSON) Write ¶
func (r GetPetsPetIDResponseDefaultJSON) Write(w http.ResponseWriter)
type GetPetsRequest ¶
type GetPetsRequest struct {
HTTPRequest *http.Request
Query struct {
// Limit - How many items to return at one time (max 100)
Limit *int32
}
}
func (GetPetsRequest) Parse ¶
func (r GetPetsRequest) Parse() (GetPetsRequest, error)
type GetPetsRequestParser ¶
type GetPetsRequestParser interface {
Parse() (GetPetsRequest, error)
}
func GetPetsHTTPRequest ¶
func GetPetsHTTPRequest(r *http.Request) GetPetsRequestParser
type GetPetsResponse ¶
type GetPetsResponse interface {
Write(w http.ResponseWriter)
// contains filtered or unexported methods
}
func NewGetPetsResponse200JSON ¶
func NewGetPetsResponse200JSON(body Pets, xNext string) GetPetsResponse
func NewGetPetsResponseDefaultJSON ¶
func NewGetPetsResponseDefaultJSON(code int, body Error) GetPetsResponse
type GetPetsResponse200JSON ¶
GetPetsResponse200JSON - A paged array of pets
func (GetPetsResponse200JSON) Write ¶
func (r GetPetsResponse200JSON) Write(w http.ResponseWriter)
type GetPetsResponseDefaultJSON ¶
GetPetsResponseDefaultJSON - unexpected error
func (GetPetsResponseDefaultJSON) Write ¶
func (r GetPetsResponseDefaultJSON) Write(w http.ResponseWriter)
type PostPetsHandlerFunc ¶
type PostPetsHandlerFunc func(r PostPetsRequestParser) PostPetsResponse
PostPetsHandlerFunc - Create a pet
func (PostPetsHandlerFunc) ServeHTTP ¶
func (f PostPetsHandlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request)
type PostPetsRequest ¶
func (PostPetsRequest) Parse ¶
func (r PostPetsRequest) Parse() PostPetsRequest
type PostPetsRequestParser ¶
type PostPetsRequestParser interface {
Parse() PostPetsRequest
}
func PostPetsHTTPRequest ¶
func PostPetsHTTPRequest(r *http.Request) PostPetsRequestParser
type PostPetsResponse ¶
type PostPetsResponse interface {
Write(w http.ResponseWriter)
// contains filtered or unexported methods
}
func NewPostPetsResponse201 ¶
func NewPostPetsResponse201() PostPetsResponse
func NewPostPetsResponseDefaultJSON ¶
func NewPostPetsResponseDefaultJSON(code int, body Error) PostPetsResponse
type PostPetsResponse201 ¶
type PostPetsResponse201 struct{}
PostPetsResponse201 - Null response
func (PostPetsResponse201) Write ¶
func (r PostPetsResponse201) Write(w http.ResponseWriter)
type PostPetsResponseDefaultJSON ¶
PostPetsResponseDefaultJSON - unexpected error
func (PostPetsResponseDefaultJSON) Write ¶
func (r PostPetsResponseDefaultJSON) Write(w http.ResponseWriter)
Click to show internal directories.
Click to hide internal directories.