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`.