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

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