Skip to content

Latest commit

 

History

History
57 lines (42 loc) · 2.56 KB

File metadata and controls

57 lines (42 loc) · 2.56 KB

OpenAPI v3.1 Specification

Code Analysis Go Reference codecov GitHub tag (latest SemVer)

The implementation of OpenAPI v3.1 Specification for Go using generics.

go get github.com/sv-tools/openapi

Supported Go versions

  • v1.25
  • v1.24
  • v1.23
  • v1.22

Versions

  • v0 - Deprecated. The initial version with the full implementation of the v3.1 Specification using generics. See the v0 branch.
  • v1 - The current version with the in-place validation of the specification.
    • The minimum version of Go is v1.22.
    • Everything has been moved to the root folder. So, the import path is github.com/sv-tools/openapi.
    • Added Validator struct for validation of the specification and the data.
      • Validator.ValidateSpec() method validates the specification.
      • Validator.ValidateData() method validates the data.
      • Validator.ValidateDataAsJSON() method validates the data by converting it into map[string]any type first using json.Marshal and json.Unmarshal. WARNING: the function is slow due to double conversion.
    • Added ParseObject function to create SchemaBuilder by parsing an object. The function supports json, yaml and openapi field tags for the structs.
    • Use OpenAPI v3.1.1 by default.

Features

  • The official v3.0 and v3.1 examples are tested. In most cases, the v3.0 specification can be converted to v3.1 by changing only the version parameter.

    @@ -1,4 +1,4 @@
    -openapi: "3.0.0"
    +openapi: "3.1.0"

NOTE: The descriptions of most structures and their fields are taken from the official documentations.

Links

License

MIT licensed. See the bundled LICENSE file for more details.