Skip to content

Commit 327fe2e

Browse files
committed
wip
1 parent 12cc6dc commit 327fe2e

File tree

5 files changed

+36001
-20
lines changed

5 files changed

+36001
-20
lines changed

cmd/openapi-spec-converter/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ func convertOpenAPI30ToSwagger(data []byte) ([]byte, error) {
513513
var kinSwaggerDoc *openapi2.T
514514

515515
if kinOpenAPIDoc, err := openapi3.NewLoader().LoadFromData(data); err == nil {
516-
kinSwaggerDoc, err = openapi2conv.FromV3(kinOpenAPIDoc)
516+
kinSwaggerDoc, err = openapispecconverter.OpenAPI30ToSwagger(kinOpenAPIDoc)
517517

518518
if err != nil {
519519
return nil, fmt.Errorf("Error converting 3.0 to Swagger %w", err)

convert-and-validate-specs.sh

Lines changed: 54 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,71 @@ if ! [ -d output ]; then
66
mkdir output
77
fi
88

9+
exit_code=0
10+
911
echo 'Converting 3.1 spec to 3.0'
10-
docker run --rm -i openapi-spec-converter:latest -t 3.0 -f yaml \
12+
if docker run --rm -i openapi-spec-converter:latest -t 3.0 -f yaml \
1113
< specs/31-spec-with-differences-from-30.yaml \
1214
> output/31-spec-with-differences-from-30.converted-30.yaml
15+
then
16+
echo 'Validating 3.1 spec converted to 3.0'
17+
if ! node_modules/.bin/swagger-cli validate output/31-spec-with-differences-from-30.converted-30.yaml; then
18+
exit_code=1
19+
fi
1320

14-
exit_code=0
21+
echo 'Converting 3.1 spec to Swagger'
22+
if docker run --rm -i openapi-spec-converter:latest -t swagger -f yaml \
23+
< specs/31-spec-with-differences-from-30.yaml \
24+
> output/31-spec-with-differences-from-30.converted-swagger.yaml
25+
then
26+
echo 'Validating 3.1 spec converted to Swagger'
27+
if ! node_modules/.bin/swagger-cli validate output/31-spec-with-differences-from-30.converted-swagger.yaml; then
28+
exit_code=1
29+
fi
1530

16-
echo 'Validating 3.1 spec converted to 3.0'
17-
if ! node_modules/.bin/swagger-cli validate output/31-spec-with-differences-from-30.converted-30.yaml; then
31+
# Up convert Swagger file back to OpenAPI 3.1 again, and output as JSON
32+
echo 'Converting 3.1 to Swagger spec back to 3.1 again'
33+
if docker run --rm -i openapi-spec-converter:latest -t 3.1 -f json \
34+
< output/31-spec-with-differences-from-30.converted-swagger.yaml \
35+
> output/31-spec-with-differences-from-30.back-to-31.json
36+
then
37+
echo 'Validating 3.1 spec converted back from Swagger'
38+
if ! node_modules/.bin/redocly lint output/31-spec-with-differences-from-30.back-to-31.json 2>&1; then
39+
exit_code=1
40+
fi
41+
else
42+
exit_code=1
43+
fi
44+
else
45+
exit_code=1
46+
fi
47+
else
1848
exit_code=1
1949
fi
2050

21-
echo 'Converting 3.1 spec to Swagger'
22-
docker run --rm -i openapi-spec-converter:latest -t swagger -f yaml \
23-
< specs/31-spec-with-differences-from-30.yaml \
24-
> output/31-spec-with-differences-from-30.converted-swagger.yaml
25-
26-
echo 'Validating 3.1 spec converted to Swagger'
27-
if ! node_modules/.bin/swagger-cli validate output/31-spec-with-differences-from-30.converted-swagger.yaml; then
51+
echo 'Converting OpenAI OpenAPI 3.0 spec to 3.1'
52+
if docker run --rm -i openapi-spec-converter:latest -t 3.1 -f json \
53+
< specs/openapi.yaml \
54+
> output/openapi-31.json
55+
then
56+
echo 'Validating OpenAI OpenAPI spec converted to 3.0'
57+
if ! node_modules/.bin/swagger-cli validate output/openapi-31.json; then
58+
exit_code=1
59+
fi
60+
else
2861
exit_code=1
2962
fi
3063

31-
# Up convert Swagger file back to OpenAPI 3.1 again, and output as JSON
32-
echo 'Converting 3.1 to Swagger spec back to 3.1 again'
33-
docker run --rm -i openapi-spec-converter:latest -t 3.1 -f json \
34-
< output/31-spec-with-differences-from-30.converted-swagger.yaml \
35-
> output/31-spec-with-differences-from-30.back-to-31.json
36-
37-
echo 'Validating 3.1 spec converted back from Swagger'
38-
if ! node_modules/.bin/redocly lint output/31-spec-with-differences-from-30.back-to-31.json 2>&1; then
64+
echo 'Converting OpenAI OpenAPI 3.0 spec to Swagger'
65+
if docker run --rm -i openapi-spec-converter:latest -t swagger -f json \
66+
< specs/openapi.yaml \
67+
> output/openapi-swagger.json
68+
then
69+
echo 'Validating OpenAI OpenAPI spec converted to Swagger'
70+
if ! node_modules/.bin/swagger-cli validate output/openapi-swagger.json; then
71+
exit_code=1
72+
fi
73+
else
3974
exit_code=1
4075
fi
4176

0 commit comments

Comments
 (0)