Full features list

  • [x] An object model that serializes to swagger yaml or json (see: spec package)
  • [x] A tool to work with swagger
    • [x] Serve swagger UI for any swagger spec file
    • [x] Flexible code generation, with customizable templates (package generator)
    • [x] Generate API based on swagger spec
    • [x] Generate go client from a swagger spec
    • [x] Support swagger polymorphism (discriminator with allOf composition)
    • [x] Validate a swagger spec document, with extra rules outlined here
    • [x] Validate JSON data against jsonschema (Draft 4), with full $ref support (see: validate package)
      • passes current json schema test suite
    • [x] Generate spec document based on annotated code (package scan)
      • generate meta data (top level swagger properties) from package docs
      • generate definition entries for models
      • support composed structs out of several embeds
      • support allOf for composed structs
      • generate path entries for routes
      • generate responses from structs
      • support composed structs out of several embeds
      • generate parameters from structs
      • support composed structs out of several embeds
  • [x] Middlewares (see: runtime package)
    • [x] serve spec
    • [x] routing
    • [x] validation
    • [x] additional validation through an interface
    • [x] authorization, with auth composition (AND|OR authorization schemes)
      • basic auth
      • api key auth
      • oauth2 bearer auth
    • [x] swagger docs UI (docUI and redoc flavors)
  • [x] Typed JSON Schema implementation
    • [x] JSON Pointer that knows about structs
    • [x] JSON Reference that knows about structs
    • [x] Supports most JSON schema features1
  • [x] extended string and numeric formats (see: strfmt package)
    • [x] JSON-schema draft 4 formats
      • date-time
      • email
      • hostname
      • ipv4
      • ipv6
      • uri
    • [x] swagger 2.0 format extensions
      • binary
      • byte (e.g. base64 encoded string)
      • date (e.g. "1970-01-01")
      • password
    • [x] go-openapi custom format extensions
      • bsonobjectid (BSON objectID)
      • creditcard
      • duration (e.g. "3 weeks", "1ms")
      • hexcolor (e.g. "#FFFFFF")
      • isbn, isbn10, isbn13
      • mac (e.g "01:02:03:04:05:06")
      • rgbcolor (e.g. "rgb(100,100,100)")
      • ssn
      • uuid, uuid3, uuid4, uuid5
  • [x] Plays nice with golint, go vet etc.

1: currently adds extra support for additionalItems(not part of swagger), but not anyOf, oneOf and not.

results matching ""

    No results matching ""