This command runs the go test bench with swagger.
In addition to the code that go-swagger generates, we have a regen command which generates additional code and swagger.yml. This is done to retain a single source of truth across all frameworks and to minimize the complexity of future enhancements.
The intent is to
- retain a single source of truth across all frameworks
- decouple frameworks and vulnerabilities, such that addition of either requires minimal or no changes to existing code.
Warning Only use this for experiments, not for PRs to Contrast-Security-OSS/go-test-bench. PRs should update the generator or its inputs.
Do not run ./regen if you have edits to swagger.yml (or ../../pkg/serveswagger/generatedInit.go) that you wish to keep, as it will overwrite both files. Instead, run swagger directly:
cd cmd/go-swagger/restapi
swagger generate server --target ../../go-swagger --name SwaggerBench --spec ../swagger.yml --principal 'interface{}' --exclude-mainNote Swagger itself will still overwrite any changes to the .go files that are marked
do not editand that were generated by swagger - any changes to those files would need to wait unti after swagger ran.
Additions, deletions, or changes to any common.Route will require use of ./regen. Doing so will overwrite
- swagger.yml
- swagger's generated go code (
cmd/go-swagger/restapi/...) - its own generated go code (
pkg/serveswagger/generatedInit.go)
Run regen via go generate ./.... Alternately, cd cmd/go-swagger/restapi; go run ../regen/regen.go.
in order:
- loads route data
- generates
swagger.yml- standard swagger spec file
- derived from template under regen/data
- runs swagger to re-generate code
- generates
generatedInit.go- boilerplate, derived from template under regen/data
- contains one function,
generatedInit(), which is called fromserveswagger.Setup() - ties our one-size-fits-all route handler
serveswagger.RouteHandler()to each swagger endpoint