From e7f4fb3c453e08582c9b955d64321fce8cb1e539 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Mon, 12 Mar 2018 23:21:07 +0800 Subject: [PATCH] Fix nodejs-server path issue in windows platform (#7808) * fix nodejs-server path issue in windows platform * only replace character in apiPackage --- .../io/swagger/codegen/DefaultCodegen.java | 6 +- .../languages/NodeJSServerCodegen.java | 4 +- .../api/swagger.yaml | 3 +- .../service/UserService.js | 2 +- .../petstore/nodejs/.swagger-codegen/VERSION | 2 +- .../server/petstore/nodejs/api/swagger.yaml | 48 +++++++++++++- samples/server/petstore/nodejs/package.json | 4 +- .../petstore/nodejs/service/PetService.js | 63 +++++++++++++++---- .../petstore/nodejs/service/UserService.js | 16 ++--- .../server/petstore/nodejs/utils/writer.js | 4 +- 10 files changed, 118 insertions(+), 34 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index 8fe2316d15a..3ef00725611 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -3324,7 +3324,7 @@ public class DefaultCodegen { public String apiFilename(String templateName, String tag) { String suffix = apiTemplateFiles().get(templateName); - return apiFileFolder() + '/' + toApiFilename(tag) + suffix; + return apiFileFolder() + File.separator + toApiFilename(tag) + suffix; } /** @@ -3337,7 +3337,7 @@ public class DefaultCodegen { */ public String apiDocFilename(String templateName, String tag) { String suffix = apiDocTemplateFiles().get(templateName); - return apiDocFileFolder() + '/' + toApiDocFilename(tag) + suffix; + return apiDocFileFolder() + File.separator + toApiDocFilename(tag) + suffix; } /** @@ -3350,7 +3350,7 @@ public class DefaultCodegen { */ public String apiTestFilename(String templateName, String tag) { String suffix = apiTestTemplateFiles().get(templateName); - return apiTestFileFolder() + '/' + toApiTestFilename(tag) + suffix; + return apiTestFileFolder() + File.separator + toApiTestFilename(tag) + suffix; } public boolean shouldOverwrite(String filename) { diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java index 8d52e0edc8c..f5bac826b22 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java @@ -85,7 +85,7 @@ public class NodeJSServerCodegen extends DefaultCodegen implements CodegenConfig additionalProperties.put("serverPort", serverPort); additionalProperties.put("implFolder", implFolder); - supportingFiles.add(new SupportingFile("writer.mustache", ("utils").replace(".", "/"), "writer.js")); + supportingFiles.add(new SupportingFile("writer.mustache", ("utils").replace(".", File.separator), "writer.js")); cliOptions.add(CliOption.newBoolean(GOOGLE_CLOUD_FUNCTIONS, "When specified, it will generate the code which runs within Google Cloud Functions " @@ -164,7 +164,7 @@ public class NodeJSServerCodegen extends DefaultCodegen implements CodegenConfig } private String implFileFolder(String output) { - return outputFolder + "/" + output + "/" + apiPackage().replace('.', '/'); + return outputFolder + File.separator + output + File.separator + apiPackage().replace('.', File.separatorChar); } /** diff --git a/samples/server/petstore/nodejs-google-cloud-functions/api/swagger.yaml b/samples/server/petstore/nodejs-google-cloud-functions/api/swagger.yaml index ec7a5e43e67..e5e6334e32d 100644 --- a/samples/server/petstore/nodejs-google-cloud-functions/api/swagger.yaml +++ b/samples/server/petstore/nodejs-google-cloud-functions/api/swagger.yaml @@ -13,6 +13,7 @@ info: license: name: "Apache-2.0" url: "http://www.apache.org/licenses/LICENSE-2.0.html" +host: "petstore.swagger.io" basePath: "/v2" tags: - name: "pet" @@ -524,7 +525,7 @@ paths: parameters: - name: "username" in: "path" - description: "The name that needs to be fetched. Use user1 for testing. " + description: "The name that needs to be fetched. Use user1 for testing." required: true type: "string" responses: diff --git a/samples/server/petstore/nodejs-google-cloud-functions/service/UserService.js b/samples/server/petstore/nodejs-google-cloud-functions/service/UserService.js index 6c554291ec6..e32b3ef0c0a 100644 --- a/samples/server/petstore/nodejs-google-cloud-functions/service/UserService.js +++ b/samples/server/petstore/nodejs-google-cloud-functions/service/UserService.js @@ -61,7 +61,7 @@ exports.deleteUser = function(username) { * Get user by user name * * - * username String The name that needs to be fetched. Use user1 for testing. + * username String The name that needs to be fetched. Use user1 for testing. * returns User **/ exports.getUserByName = function(username) { diff --git a/samples/server/petstore/nodejs/.swagger-codegen/VERSION b/samples/server/petstore/nodejs/.swagger-codegen/VERSION index 7fea99011a6..855ff9501eb 100644 --- a/samples/server/petstore/nodejs/.swagger-codegen/VERSION +++ b/samples/server/petstore/nodejs/.swagger-codegen/VERSION @@ -1 +1 @@ -2.2.3-SNAPSHOT \ No newline at end of file +2.4.0-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/nodejs/api/swagger.yaml b/samples/server/petstore/nodejs/api/swagger.yaml index 9bbb8a526d9..e5e6334e32d 100644 --- a/samples/server/petstore/nodejs/api/swagger.yaml +++ b/samples/server/petstore/nodejs/api/swagger.yaml @@ -11,7 +11,7 @@ info: contact: email: "apiteam@swagger.io" license: - name: "Apache 2.0" + name: "Apache-2.0" url: "http://www.apache.org/licenses/LICENSE-2.0.html" host: "petstore.swagger.io" basePath: "/v2" @@ -108,11 +108,11 @@ paths: type: "array" items: type: "string" + default: "available" enum: - "available" - "pending" - "sold" - default: "available" collectionFormat: "csv" responses: 200: @@ -161,6 +161,7 @@ paths: - petstore_auth: - "write:pets" - "read:pets" + deprecated: true x-swagger-router-controller: "Pet" /pet/{petId}: get: @@ -524,7 +525,7 @@ paths: parameters: - name: "username" in: "path" - description: "The name that needs to be fetched. Use user1 for testing. " + description: "The name that needs to be fetched. Use user1 for testing." required: true type: "string" responses: @@ -625,6 +626,13 @@ definitions: default: false title: "Pet Order" description: "An order for a pets from the pet store" + example: + petId: 6 + quantity: 1 + id: 0 + shipDate: "2000-01-23T04:56:07.000+00:00" + complete: false + status: "placed" xml: name: "Order" Category: @@ -637,6 +645,9 @@ definitions: type: "string" title: "Pet category" description: "A category for a pet" + example: + name: "name" + id: 6 xml: name: "Category" User: @@ -663,6 +674,15 @@ definitions: description: "User Status" title: "a User" description: "A User who is purchasing from the pet store" + example: + firstName: "firstName" + lastName: "lastName" + password: "password" + userStatus: 6 + phone: "phone" + id: 0 + email: "email" + username: "username" xml: name: "User" Tag: @@ -675,6 +695,9 @@ definitions: type: "string" title: "Pet Tag" description: "A tag for a pet" + example: + name: "name" + id: 1 xml: name: "Tag" Pet: @@ -714,6 +737,21 @@ definitions: - "sold" title: "a Pet" description: "A pet for sale in the pet store" + example: + photoUrls: + - "photoUrls" + - "photoUrls" + name: "doggie" + id: 0 + category: + name: "name" + id: 6 + tags: + - name: "name" + id: 1 + - name: "name" + id: 1 + status: "available" xml: name: "Pet" ApiResponse: @@ -728,6 +766,10 @@ definitions: type: "string" title: "An uploaded response" description: "Describes the result of uploading an image resource" + example: + code: 0 + type: "type" + message: "message" externalDocs: description: "Find out more about Swagger" url: "http://swagger.io" diff --git a/samples/server/petstore/nodejs/package.json b/samples/server/petstore/nodejs/package.json index e5fccd69a52..28652fc6552 100644 --- a/samples/server/petstore/nodejs/package.json +++ b/samples/server/petstore/nodejs/package.json @@ -4,8 +4,8 @@ "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.", "main": "index.js", "scripts": { - "prestart": "npm install", - "start": "node index.js" + "prestart": "npm install", + "start": "node index.js" }, "keywords": [ "swagger" diff --git a/samples/server/petstore/nodejs/service/PetService.js b/samples/server/petstore/nodejs/service/PetService.js index c89674e7cf5..4f2fe5ad834 100644 --- a/samples/server/petstore/nodejs/service/PetService.js +++ b/samples/server/petstore/nodejs/service/PetService.js @@ -41,15 +41,34 @@ exports.findPetsByStatus = function(status) { return new Promise(function(resolve, reject) { var examples = {}; examples['application/json'] = [ { - "photoUrls" : [ "aeiou" ], + "photoUrls" : [ "photoUrls", "photoUrls" ], "name" : "doggie", "id" : 0, "category" : { - "name" : "aeiou", + "name" : "name", "id" : 6 }, "tags" : [ { - "name" : "aeiou", + "name" : "name", + "id" : 1 + }, { + "name" : "name", + "id" : 1 + } ], + "status" : "available" +}, { + "photoUrls" : [ "photoUrls", "photoUrls" ], + "name" : "doggie", + "id" : 0, + "category" : { + "name" : "name", + "id" : 6 + }, + "tags" : [ { + "name" : "name", + "id" : 1 + }, { + "name" : "name", "id" : 1 } ], "status" : "available" @@ -74,15 +93,34 @@ exports.findPetsByTags = function(tags) { return new Promise(function(resolve, reject) { var examples = {}; examples['application/json'] = [ { - "photoUrls" : [ "aeiou" ], + "photoUrls" : [ "photoUrls", "photoUrls" ], "name" : "doggie", "id" : 0, "category" : { - "name" : "aeiou", + "name" : "name", "id" : 6 }, "tags" : [ { - "name" : "aeiou", + "name" : "name", + "id" : 1 + }, { + "name" : "name", + "id" : 1 + } ], + "status" : "available" +}, { + "photoUrls" : [ "photoUrls", "photoUrls" ], + "name" : "doggie", + "id" : 0, + "category" : { + "name" : "name", + "id" : 6 + }, + "tags" : [ { + "name" : "name", + "id" : 1 + }, { + "name" : "name", "id" : 1 } ], "status" : "available" @@ -107,15 +145,18 @@ exports.getPetById = function(petId) { return new Promise(function(resolve, reject) { var examples = {}; examples['application/json'] = { - "photoUrls" : [ "aeiou" ], + "photoUrls" : [ "photoUrls", "photoUrls" ], "name" : "doggie", "id" : 0, "category" : { - "name" : "aeiou", + "name" : "name", "id" : 6 }, "tags" : [ { - "name" : "aeiou", + "name" : "name", + "id" : 1 + }, { + "name" : "name", "id" : 1 } ], "status" : "available" @@ -173,8 +214,8 @@ exports.uploadFile = function(petId,additionalMetadata,file) { var examples = {}; examples['application/json'] = { "code" : 0, - "type" : "aeiou", - "message" : "aeiou" + "type" : "type", + "message" : "message" }; if (Object.keys(examples).length > 0) { resolve(examples[Object.keys(examples)[0]]); diff --git a/samples/server/petstore/nodejs/service/UserService.js b/samples/server/petstore/nodejs/service/UserService.js index afdc528f0da..e32b3ef0c0a 100644 --- a/samples/server/petstore/nodejs/service/UserService.js +++ b/samples/server/petstore/nodejs/service/UserService.js @@ -61,21 +61,21 @@ exports.deleteUser = function(username) { * Get user by user name * * - * username String The name that needs to be fetched. Use user1 for testing. + * username String The name that needs to be fetched. Use user1 for testing. * returns User **/ exports.getUserByName = function(username) { return new Promise(function(resolve, reject) { var examples = {}; examples['application/json'] = { - "firstName" : "aeiou", - "lastName" : "aeiou", - "password" : "aeiou", + "firstName" : "firstName", + "lastName" : "lastName", + "password" : "password", "userStatus" : 6, - "phone" : "aeiou", + "phone" : "phone", "id" : 0, - "email" : "aeiou", - "username" : "aeiou" + "email" : "email", + "username" : "username" }; if (Object.keys(examples).length > 0) { resolve(examples[Object.keys(examples)[0]]); @@ -97,7 +97,7 @@ exports.getUserByName = function(username) { exports.loginUser = function(username,password) { return new Promise(function(resolve, reject) { var examples = {}; - examples['application/json'] = "aeiou"; + examples['application/json'] = ""; if (Object.keys(examples).length > 0) { resolve(examples[Object.keys(examples)[0]]); } else { diff --git a/samples/server/petstore/nodejs/utils/writer.js b/samples/server/petstore/nodejs/utils/writer.js index 7350b54371f..d79f6e1a526 100644 --- a/samples/server/petstore/nodejs/utils/writer.js +++ b/samples/server/petstore/nodejs/utils/writer.js @@ -39,5 +39,5 @@ var writeJson = exports.writeJson = function(response, arg1, arg2) { payload = JSON.stringify(payload, null, 2); } response.writeHead(code, {'Content-Type': 'application/json'}); - response.end(payload, code); -} \ No newline at end of file + response.end(payload); +}