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