From f7b59a60861d588e7ddd1b27c4fc1c7dc48c5c69 Mon Sep 17 00:00:00 2001 From: Joe Hsu Date: Wed, 29 Mar 2017 14:47:43 +0800 Subject: [PATCH] add finalName setting in parsec-swagger --- cmd/rdl-gen-parsec-swagger/main.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/cmd/rdl-gen-parsec-swagger/main.go b/cmd/rdl-gen-parsec-swagger/main.go index a4095a8..78ca16e 100644 --- a/cmd/rdl-gen-parsec-swagger/main.go +++ b/cmd/rdl-gen-parsec-swagger/main.go @@ -29,6 +29,7 @@ func main() { flag.String("s", "", "RDL source file") genParsecErrorString := flag.String("e", "true", "Generate Parsec Error classes") scheme := flag.String("c", "", "Scheme") + finalName := flag.String("f", "", "FinalName of jar package, will be a part of path in basePath") flag.Parse() genParsecError, err:= strconv.ParseBool(*genParsecErrorString) @@ -39,7 +40,7 @@ func main() { var schema rdl.Schema err = json.Unmarshal(data, &schema) if err == nil { - ExportToSwagger(&schema, *pOutdir, genParsecError, *scheme) + ExportToSwagger(&schema, *pOutdir, genParsecError, *scheme, *finalName) os.Exit(0) } } @@ -56,8 +57,8 @@ func checkErr(err error) { // ExportToSwagger exports the RDL schema to Swagger 2.0 format, // and serves it up on the specified server endpoint is provided, or outputs to stdout otherwise. -func ExportToSwagger(schema *rdl.Schema, outdir string, genParsecError bool, swaggerScheme string) error { - swaggerData, err := swagger(schema, genParsecError, swaggerScheme) +func ExportToSwagger(schema *rdl.Schema, outdir string, genParsecError bool, swaggerScheme string, finalName string) error { + swaggerData, err := swagger(schema, genParsecError, swaggerScheme, finalName) if err != nil { return err } @@ -104,7 +105,7 @@ func ExportToSwagger(schema *rdl.Schema, outdir string, genParsecError bool, swa return http.ListenAndServe(outdir, nil) } -func swagger(schema *rdl.Schema, genParsecError bool, swaggerScheme string) (*SwaggerDoc, error) { +func swagger(schema *rdl.Schema, genParsecError bool, swaggerScheme string, finalName string) (*SwaggerDoc, error) { reg := rdl.NewTypeRegistry(schema) swag := new(SwaggerDoc) swag.Swagger = "2.0" @@ -116,6 +117,14 @@ func swagger(schema *rdl.Schema, genParsecError bool, swaggerScheme string) (*Sw swag.Schemes = append(swag.Schemes, swaggerScheme) } + if finalName != "" { + if string([]rune(finalName)[0]) != "/" { + swag.BasePath = "/" + finalName + } else { + swag.BasePath = finalName + } + } + swag.BasePath += utils.JavaGenerationRootPath(schema) title := "API"