Skip to content

Commit

Permalink
Implementing OpenAPI 3.1.0 spec (#1513)
Browse files Browse the repository at this point in the history
* fix x-tagGroups

* fix module name

* change paths

* refactoring

* update dependencies

* stuff

* add log

* fix finding of main file

* fix broken type resolution

* fix bug

* clean deps

* fix tool after merging upstream

* use json-iterator to marshal json

* fix generating of json examples

* update config used by jsoniter

* bump version

* update dependencies

* resolve merge conflicts

* use newest go in docker

* yep

* fix gen

* fix gen

* update swag version

* yep

* fix parser

* fix some tests

* fix all tests

* parse most of general api description

* implement security scheme parsing

* parse oauth2 specs

* parse scopes and extensions in security schemes

* extend parsing security stuff

* process v3 routes

* meh

* find unimported types

* parse basic operation info

* parse primitive and object parameters

* generate openapi spec

* fix module name

* cleanup

* update version to 2.0

* fix issues that appread after merging

* cleanup after merge conflicts

* fix all tests

* add go 1.19 to workflows

* pin dockerfile to 1.19.7

* Set minimum supported Go version to 1.18.x

* parse response headers

* copy readme

* started to implement field parser

* Refactor: use RefOrSpec instead of Spec

* start to add tests for operationv3

* fix tests

* implement allOf with primitive types

* Add NestedPrimitiveArrayType test

* implement TestParseResponseCommentWithNestedFieldsV3

* add more tests

* parse arrays and maps

* fix implementation of map types

* implement more tests

* fix example docs

* adjust example

* fix example jsons

* support array types in Parameters

* implement more tests, implement correct collectionFormat handling

* finish implementation of operationv3 tests

* all tests green

* fix parsing of security definitions

* add test for generalAPI info

* end of day checkin

* Update example.json

* fix codeSamples from file and fix creation of operations

* fix resolving of schema ref errors

* fix tests that broke due to fixes on model parsing

* Fix creating schemes of array types of custom objects

* Fix resolution of refSchemas

* cleanup

* update dependencies

* cleanup

* Update README.md

reset readme.md

* Update README_zh-CN.md

reset readme_zh-CN

* update dependency

* reset test file

---------

Co-authored-by: Tobias Theel <[email protected]>
  • Loading branch information
2 people authored and ubogdan committed Apr 17, 2023
1 parent e3bb142 commit d76b289
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion cmd/swag/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ const (
quietFlag = "quiet"
tagsFlag = "tags"
parseExtensionFlag = "parseExtension"
openAPIVersionFlag = "v3.1"
templateDelimsFlag = "templateDelims"
openAPIVersionFlag = "v3.1"
packageName = "packageName"
collectionFormatFlag = "collectionFormat"
)
Expand Down
12 changes: 6 additions & 6 deletions field_parserv3.go
Original file line number Diff line number Diff line change
Expand Up @@ -464,21 +464,21 @@ func (sf *structFieldV3) parseValidTags(validTag string) {
}
}

func (sf *structFieldV3) parseEnumTags(enumTag string) error {
enumType := sf.schemaType
if sf.schemaType == ARRAY {
enumType = sf.arrayType
func (field *structFieldV3) parseEnumTags(enumTag string) error {
enumType := field.schemaType
if field.schemaType == ARRAY {
enumType = field.arrayType
}

sf.enums = nil
field.enums = nil

for _, e := range strings.Split(enumTag, ",") {
value, err := defineType(enumType, e)
if err != nil {
return err
}

sf.enums = append(sf.enums, value)
field.enums = append(field.enums, value)
}

return nil
Expand Down

0 comments on commit d76b289

Please sign in to comment.