Merged
requested to merge github/fork/grokify/spec/enhance/default-server-url-to-http-scheme into master
Created by: grokify
PR checklist
-
Read the contribution guidelines. -
Ran the shell script under ./bin/
to update Petstore sample so that CIs can verify the change. (For instance, only need to run./bin/{LANG}-petstore.sh
and./bin/security/{LANG}-petstore.sh
if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in.\bin\windows\
. -
Filed the PR against the correct branch: master
,3.1.x
,4.0.x
. Default:master
. -
Copied the technical committee to review the pull request if your PR is targeting a particular programming language.
Description of the PR
fix https://github.com/OpenAPITools/openapi-generator/issues/181
- Includes additional tests for
sanitizeUrl
. - Checks against scheme patterns shown by IANA list, which includes
[0-9a-z.+\-]
. Can be made more generic to match[^\p{Space}:/]
- Ran the
bin/go-petstore.sh
after removing thescheme
from the spec and it works as expected. Didn't check in the changes because it requires a change in the spec.
Current Behavior before PR for bin/go-petstore.sh
Removing the scheme from the spec results in the following warning and a non-working client.
[main] WARN o.o.codegen.utils.URLPathUtils - Not valid URL: petstore.swagger.io:80/v2. Default to http://localhost.
Generated configuration.go
causes mvn integration-test
to fail:
func NewConfiguration() *Configuration {
cfg := &Configuration{
BasePath: "petstore.swagger.io:80/v2",
DefaultHeader: make(map[string]string),
UserAgent: "OpenAPI-Generator/1.0.0/go",
}
return cfg
}
New Behavior
bin/go-petstore.sh
[main] WARN o.o.codegen.utils.URLPathUtils - 'scheme' not defined in the spec (2.0). Default to [http] for server URL [http://petstore.swagger.io:80/v2]
configuration.go
with http
scheme and passing integration tests.
func NewConfiguration() *Configuration {
cfg := &Configuration{
BasePath: "http://petstore.swagger.io:80/v2",
DefaultHeader: make(map[string]string),
UserAgent: "OpenAPI-Generator/1.0.0/go",
}
return cfg
}