github.com/AngusLu/go-swagger@v0.28.0/docs/features.md (about)

     1  ## Full features list
     2  
     3  - [x] An object model that serializes to swagger yaml or json (see: [spec package](https://github.com/go-openapi/spec))
     4  - [x] A tool to work with swagger
     5    - [x] Serve swagger UI for any swagger spec file
     6    - [x] Flexible code generation, with customizable templates (package generator)
     7    - [x] Generate API based on swagger spec
     8    - [x] Generate go client from a swagger spec
     9    - [x] Generate CLI (command line tool) client from a swagger spec
    10    - [x] Support swagger polymorphism (discriminator with allOf composition)
    11    - [x] Validate a swagger spec document, with extra rules outlined [here](usage/validate.md)
    12    - [x] Validate JSON data against jsonschema (Draft 4), with full $ref support (see: [validate package](https://github.com/go-openapi/validate))
    13      - passes current json schema test suite
    14    - [x] Generate spec document based on annotated code (package scan)
    15      - generate meta data (top level swagger properties) from package docs
    16      - generate definition entries for models
    17      - support composed structs out of several embeds
    18      - support allOf for composed structs
    19      - generate path entries for routes
    20      - generate responses from structs
    21      - support composed structs out of several embeds
    22      - generate parameters from structs
    23      - support composed structs out of several embeds
    24  - [x] Middlewares (see: [runtime package](https://github.com/go-openapi/runtime))
    25    - [x] serve spec
    26    - [x] routing
    27    - [x] validation
    28    - [x] additional validation through an interface
    29    - [x] authorization, with auth composition (AND|OR authorization schemes)
    30      - basic auth
    31      - api key auth
    32      - oauth2 bearer auth
    33    - [x] swagger docs UI (docUI and redoc flavors)
    34  - [x] Typed JSON Schema implementation
    35    - [x] JSON Pointer that knows about structs
    36    - [x] JSON Reference that knows about structs
    37    - [x] Supports most JSON schema features<sup>[1](#footnote1)</sup>
    38  - [x] extended string and numeric formats (see: [strfmt package](https://github.com/go-openapi/strfmt))
    39    - [x] JSON-schema draft 4 formats
    40      - date-time
    41      - email
    42      - hostname
    43      - ipv4
    44      - ipv6
    45      - uri
    46    - [x] swagger 2.0 format extensions
    47      - binary
    48      - byte (e.g. base64 encoded string)
    49      - date (e.g. "1970-01-01")
    50      - password
    51    - [x] go-openapi custom format extensions
    52      - bsonobjectid (BSON objectID)
    53      - creditcard
    54      - duration (e.g. "3 weeks", "1ms")
    55      - hexcolor (e.g. "#FFFFFF")
    56      - isbn, isbn10, isbn13
    57      - mac (e.g "01:02:03:04:05:06")
    58      - rgbcolor (e.g. "rgb(100,100,100)")
    59      - ssn
    60      - uuid, uuid3, uuid4, uuid5
    61  - [x] Plays nice with golint, go vet etc.
    62  
    63  <a name="footnote1">1</a>: currently adds extra support for `additionalItems`(not part of swagger), but not `anyOf`, `oneOf` and `not`.