test

package
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 26, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Examples

Constants

View Source
const SpecFile string = `` /* 2614-byte string literal not displayed */

Variables

View Source
var LogError = func(err error) {
	log.Println(fmt.Sprintf("Error: %v", err))
}

Functions

func SchemaPath

func SchemaPath(r *http.Request) (string, bool)

func SpecFileHandler

func SpecFileHandler() http.Handler

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 GetPetsPetIDRequest) 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(r.HTTP().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)
}

func (*API) ServeHTTP

func (rt *API) ServeHTTP(rw http.ResponseWriter, r *http.Request)

type ErrParseParam

type ErrParseParam struct {
	In        string
	Parameter string
	Reason    string
	Err       error
}

func (ErrParseParam) Error

func (e ErrParseParam) Error() string

func (ErrParseParam) Unwrap

func (e ErrParseParam) Unwrap() error

type Error

type Error struct {
	Code    int32  `json:"code"`
	Message string `json:"message"`
}

type GetPetsHandlerFunc

type GetPetsHandlerFunc func(r GetPetsRequest) GetPetsResponse

GetPetsHandlerFunc - List all pets

func (GetPetsHandlerFunc) ServeHTTP

func (f GetPetsHandlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request)

type GetPetsParams added in v0.0.3

type GetPetsParams struct {
	Query struct {

		// Limit - How many items to return at one time (max 100)
		Limit *int32
	}
}

func (GetPetsParams) HTTP added in v0.0.3

func (r GetPetsParams) HTTP() *http.Request

func (GetPetsParams) Parse added in v0.0.3

func (r GetPetsParams) Parse() (GetPetsParams, error)

type GetPetsPetIDHandlerFunc

type GetPetsPetIDHandlerFunc func(r GetPetsPetIDRequest) GetPetsPetIDResponse

GetPetsPetIDHandlerFunc - Info for a specific pet

func (GetPetsPetIDHandlerFunc) ServeHTTP

type GetPetsPetIDParams added in v0.0.3

type GetPetsPetIDParams struct {
	Path struct {

		// PetID - The id of the pet to retrieve
		PetID string
	}
}

func (GetPetsPetIDParams) HTTP added in v0.0.3

func (r GetPetsPetIDParams) HTTP() *http.Request

func (GetPetsPetIDParams) Parse added in v0.0.3

type GetPetsPetIDRequest

type GetPetsPetIDRequest interface {
	HTTP() *http.Request
	Parse() (GetPetsPetIDParams, error)
}

func GetPetsPetIDHTTPRequest

func GetPetsPetIDHTTPRequest(r *http.Request) GetPetsPetIDRequest

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

type GetPetsPetIDResponseDefaultJSON

type GetPetsPetIDResponseDefaultJSON struct {
	Code int
	Body Error
}

GetPetsPetIDResponseDefaultJSON - unexpected error

func (GetPetsPetIDResponseDefaultJSON) Write

type GetPetsRequest

type GetPetsRequest interface {
	HTTP() *http.Request
	Parse() (GetPetsParams, error)
}

func GetPetsHTTPRequest

func GetPetsHTTPRequest(r *http.Request) GetPetsRequest

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

type GetPetsResponse200JSON struct {
	Body    Pets
	Headers struct {
		Body  Pets
		XNext string
	}
}

GetPetsResponse200JSON - A paged array of pets

func (GetPetsResponse200JSON) Write

type GetPetsResponseDefaultJSON

type GetPetsResponseDefaultJSON struct {
	Code int
	Body Error
}

GetPetsResponseDefaultJSON - unexpected error

func (GetPetsResponseDefaultJSON) Write

type Pet

type Pet struct {
	ID   int64  `json:"id"`
	Name string `json:"name"`
	Tag  string `json:"tag"`
}

type Pets

type Pets []Pet

type PostPetsHandlerFunc

type PostPetsHandlerFunc func(r PostPetsRequest) PostPetsResponse

PostPetsHandlerFunc - Create a pet

func (PostPetsHandlerFunc) ServeHTTP

func (f PostPetsHandlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request)

type PostPetsParams added in v0.0.3

type PostPetsParams struct {
}

func (PostPetsParams) HTTP added in v0.0.3

func (r PostPetsParams) HTTP() *http.Request

func (PostPetsParams) Parse added in v0.0.3

func (r PostPetsParams) Parse() PostPetsParams

type PostPetsRequest

type PostPetsRequest interface {
	HTTP() *http.Request
	Parse() PostPetsParams
}

func PostPetsHTTPRequest

func PostPetsHTTPRequest(r *http.Request) PostPetsRequest

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

type PostPetsResponseDefaultJSON

type PostPetsResponseDefaultJSON struct {
	Code int
	Body Error
}

PostPetsResponseDefaultJSON - unexpected error

func (PostPetsResponseDefaultJSON) Write

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL