Categorygithub.com/vkd/goag
modulepackage
0.1.26
Repository: https://github.com/vkd/goag.git
Documentation: pkg.go.dev

# README

Goag - Golang OpenAPIv3 Generator

This tool generates boilerplate code for the http handling. It handles the parsing of queries, headers or json bodies.

It makes impossible to return undocumented type/response by endpoint.

Example

var db interface {
    GetPet(_ context.Context, id string) (Pet, error)
}

func ExampleAPI_petsStore() {
    api := &API{
        ShowPetByIDHandler: func(ctx context.Context, r ShowPetByIDRequest) ShowPetByIDResponse {
            req, err := r.Parse()
            if err != nil {
                return NewShowPetByIDResponseDefaultJSON(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 NewShowPetByIDResponseDefaultJSON(http.StatusInternalServerError, Error{
                    Code:    500,
                    Message: fmt.Sprintf("Internal server error: %v", err),
                })
            }

            return NewShowPetByIDResponse200JSON(out)
        },
        // ...
    }

    _ = http.ListenAndServe(":8080", api)
}
openapi: "3.0.0"
info:
  version: 1.0.0
  title: Swagger Petstore
  license:
    name: MIT
servers:
  - url: http://petstore.swagger.io/v1
paths:
  /pets/{petId}:
    get:
      summary: Info for a specific pet
      operationId: showPetById
      tags:
        - pets
      parameters:
        - name: petId
          in: path
          required: true
          description: The id of the pet to retrieve
          schema:
            type: string
      responses:
        '200':
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pet"
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
components:
  schemas:
    Pet:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        tag:
          type: string
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

No description provided by the author
No description provided by the author

# Structs

No description provided by the author