From 27d1e380b8ef916015fd0e70234db95ecedd1666 Mon Sep 17 00:00:00 2001 From: wing328 Date: Sun, 24 Jan 2016 22:08:05 +0800 Subject: [PATCH 1/7] rename nodejs to nodejs-server --- bin/nodejs-petstore-server.sh | 2 +- .../languages/NodeJSServerCodegen.java | 2 +- .../options/NodeJSServerOptionsProvider.java | 2 +- samples/server/petstore/nodejs/README.md | 6 +- .../server/petstore/nodejs/api/swagger.yaml | 62 +++++++++++++++++++ .../server/petstore/nodejs/controllers/Pet.js | 8 +++ .../petstore/nodejs/controllers/PetService.js | 34 ++++++++++ .../nodejs/controllers/StoreService.js | 4 +- samples/server/petstore/nodejs/package.json | 2 +- 9 files changed, 113 insertions(+), 9 deletions(-) diff --git a/bin/nodejs-petstore-server.sh b/bin/nodejs-petstore-server.sh index 5d797903791..bb5d70ab4a8 100755 --- a/bin/nodejs-petstore-server.sh +++ b/bin/nodejs-petstore-server.sh @@ -26,6 +26,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l nodejs -o samples/server/petstore/nodejs" +ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l nodejs-server -o samples/server/petstore/nodejs" java $JAVA_OPTS -Dservice -jar $executable $ags 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 6fa031050bb..2d9a8b0d578 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 @@ -129,7 +129,7 @@ public class NodeJSServerCodegen extends DefaultCodegen implements CodegenConfig */ @Override public String getName() { - return "nodejs"; + return "nodejs-server"; } /** diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/NodeJSServerOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/NodeJSServerOptionsProvider.java index 3d49fcb8d01..6252bbd08fc 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/NodeJSServerOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/NodeJSServerOptionsProvider.java @@ -12,7 +12,7 @@ public class NodeJSServerOptionsProvider implements OptionsProvider { @Override public String getLanguage() { - return "nodejs"; + return "nodejs-server"; } @Override diff --git a/samples/server/petstore/nodejs/README.md b/samples/server/petstore/nodejs/README.md index 2efc45fe33e..d94aa385ec0 100644 --- a/samples/server/petstore/nodejs/README.md +++ b/samples/server/petstore/nodejs/README.md @@ -1,11 +1,11 @@ # Swagger generated server ## Overview -This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the [swagger-spec](https://github.com/OAI/OpenAPI-Specification) from a remote server, you can easily generate a server stub. This is an example of building a node.js server. +This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the [OpenAPI-Spec](https://github.com/OAI/OpenAPI-Specification) from a remote server, you can easily generate a server stub. This is an example of building a node.js server. This example uses the [expressjs](http://expressjs.com/) framework. To see how to make this your own, look here: -[README](https://github.com/swagger-api/swagger-codegen/README.md) +[README](https://github.com/swagger-api/swagger-codegen/blob/master/README.md) ### Running the server To run the server, follow these simple steps: @@ -21,4 +21,4 @@ To view the Swagger UI interface: open http://localhost:8080/docs ``` -This project leverages the mega-awesome [swagger-tools](https://github.com/apigee-127/swagger-tools) middleware which does most all the work. \ No newline at end of file +This project leverages the mega-awesome [swagger-tools](https://github.com/apigee-127/swagger-tools) middleware which does most all the work. diff --git a/samples/server/petstore/nodejs/api/swagger.yaml b/samples/server/petstore/nodejs/api/swagger.yaml index 49a3405de09..9df1164d008 100644 --- a/samples/server/petstore/nodejs/api/swagger.yaml +++ b/samples/server/petstore/nodejs/api/swagger.yaml @@ -271,6 +271,68 @@ paths: - petstore_auth: - "write:pets" - "read:pets" + /pet/{petId}?testing_byte_array=true: + get: + tags: + - "pet" + summary: "Fake endpoint to test byte array return by 'Find pet by ID'" + description: "Returns a pet when ID < 10. ID > 10 or nonintegers will simulate\ + \ API error conditions" + operationId: "getPetByIdWithByteArray" + produces: + - "application/json" + - "application/xml" + parameters: + - name: "petId" + in: "path" + description: "ID of pet that needs to be fetched" + required: true + type: "integer" + format: "int64" + responses: + 200: + description: "successful operation" + schema: + type: "string" + format: "binary" + 400: + description: "Invalid ID supplied" + 404: + description: "Pet not found" + security: + - api_key: [] + - petstore_auth: + - "write:pets" + - "read:pets" + /pet?testing_byte_array=true: + post: + tags: + - "pet" + summary: "Fake endpoint to test byte array in body parameter for adding a new\ + \ pet to the store" + description: "" + operationId: "addPetUsingByteArray" + consumes: + - "application/json" + - "application/xml" + produces: + - "application/json" + - "application/xml" + parameters: + - in: "body" + name: "body" + description: "Pet object in the form of byte array" + required: false + schema: + type: "string" + format: "binary" + responses: + 405: + description: "Invalid input" + security: + - petstore_auth: + - "write:pets" + - "read:pets" /store/inventory: get: tags: diff --git a/samples/server/petstore/nodejs/controllers/Pet.js b/samples/server/petstore/nodejs/controllers/Pet.js index d272cb8240f..0431db583a9 100644 --- a/samples/server/petstore/nodejs/controllers/Pet.js +++ b/samples/server/petstore/nodejs/controllers/Pet.js @@ -37,3 +37,11 @@ module.exports.deletePet = function deletePet (req, res, next) { module.exports.uploadFile = function uploadFile (req, res, next) { Pet.uploadFile(req.swagger.params, res, next); }; + +module.exports.getPetByIdWithByteArray = function getPetByIdWithByteArray (req, res, next) { + Pet.getPetByIdWithByteArray(req.swagger.params, res, next); +}; + +module.exports.addPetUsingByteArray = function addPetUsingByteArray (req, res, next) { + Pet.addPetUsingByteArray(req.swagger.params, res, next); +}; diff --git a/samples/server/petstore/nodejs/controllers/PetService.js b/samples/server/petstore/nodejs/controllers/PetService.js index 97a1d3ede62..690132ad92f 100644 --- a/samples/server/petstore/nodejs/controllers/PetService.js +++ b/samples/server/petstore/nodejs/controllers/PetService.js @@ -168,5 +168,39 @@ var examples = {}; + res.end(); +} +exports.getPetByIdWithByteArray = function(args, res, next) { + /** + * parameters expected in the args: + * petId (Long) + **/ + +var examples = {}; + + examples['application/json'] = ""; + + + + if(Object.keys(examples).length > 0) { + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify(examples[Object.keys(examples)[0]] || {}, null, 2)); + } + else { + res.end(); + } + + +} +exports.addPetUsingByteArray = function(args, res, next) { + /** + * parameters expected in the args: + * body (byte[]) + **/ + +var examples = {}; + + + res.end(); } diff --git a/samples/server/petstore/nodejs/controllers/StoreService.js b/samples/server/petstore/nodejs/controllers/StoreService.js index 3bb37b6c01f..7c9dbbda312 100644 --- a/samples/server/petstore/nodejs/controllers/StoreService.js +++ b/samples/server/petstore/nodejs/controllers/StoreService.js @@ -37,7 +37,7 @@ var examples = {}; "complete" : true, "status" : "aeiou", "quantity" : 123, - "shipDate" : "2015-11-18T02:43:54.540+0000" + "shipDate" : "2016-01-24T14:07:57.768+0000" }; @@ -66,7 +66,7 @@ var examples = {}; "complete" : true, "status" : "aeiou", "quantity" : 123, - "shipDate" : "2015-11-18T02:43:54.544+0000" + "shipDate" : "2016-01-24T14:07:57.780+0000" }; diff --git a/samples/server/petstore/nodejs/package.json b/samples/server/petstore/nodejs/package.json index 8befd2669d2..bdc8f0167a1 100644 --- a/samples/server/petstore/nodejs/package.json +++ b/samples/server/petstore/nodejs/package.json @@ -1,5 +1,5 @@ { - "name": "", + "name": "swagger-petstore", "version": "1.0.0", "description": "This is a sample server Petstore server. You can find out more about Swagger at http://swagger.io or on irc.freenode.net, #swagger. For this sample, you can use the api key \"special-key\" to test the authorization filters", "main": "index.js", From 4026ba3e448b26213ce00ae05a0c1adc40168126 Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 22 Mar 2016 15:57:23 +0800 Subject: [PATCH 2/7] add - [Eureka](http://eure.jp/) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 433aea5c6fc..be3a47cf9a7 100644 --- a/README.md +++ b/README.md @@ -733,6 +733,7 @@ Here are some companies/projects using Swagger Codegen in production. To add you - [Cupix](http://www.cupix.com) - [DocuSign](https://www.docusign.com) - [Ergon](http://www.ergon.ch/) +- [Eureka](http://eure.jp/) - [everystory.us](http://everystory.us) - [Expected Behavior](http://www.expectedbehavior.com/) - [LANDR Audio](https://www.landr.com/) From 0941db6fbd23acba2bcb6d5c782eeb634949b27e Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 22 Mar 2016 16:13:37 +0800 Subject: [PATCH 3/7] lower case eureka --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be3a47cf9a7..afea03e601f 100644 --- a/README.md +++ b/README.md @@ -733,7 +733,7 @@ Here are some companies/projects using Swagger Codegen in production. To add you - [Cupix](http://www.cupix.com) - [DocuSign](https://www.docusign.com) - [Ergon](http://www.ergon.ch/) -- [Eureka](http://eure.jp/) +- [eureka](http://eure.jp/) - [everystory.us](http://everystory.us) - [Expected Behavior](http://www.expectedbehavior.com/) - [LANDR Audio](https://www.landr.com/) From 553ebd659a86b5d3f9cf323d3ea93749f7c003e7 Mon Sep 17 00:00:00 2001 From: Stuart Campbell Date: Tue, 22 Mar 2016 10:56:56 +0000 Subject: [PATCH 4/7] Updates to iOS ApiClient - added getting for for offline state and settings for reachability status. This addresses "Default iOS reachability status #2422" --- .../main/resources/objc/ApiClient-body.mustache | 8 ++++++++ .../main/resources/objc/ApiClient-header.mustache | 14 ++++++++++++++ .../petstore/objc/SwaggerClient/SWGApiClient.h | 14 ++++++++++++++ .../petstore/objc/SwaggerClient/SWGApiClient.m | 8 ++++++++ .../client/petstore/objc/SwaggerClient/SWGName.h | 2 ++ .../client/petstore/objc/SwaggerClient/SWGName.m | 4 ++-- 6 files changed, 48 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache b/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache index 2fcd91ac323..a7dec733321 100644 --- a/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache @@ -53,6 +53,10 @@ static void (^reachabilityChangeBlock)(int); cacheEnabled = enabled; } ++(void) setReachabilityStatus:(AFNetworkReachabilityStatus)status { + reachabilityStatus = status; +} + - (void)setHeaderValue:(NSString*) value forKey:(NSString*) forKey { [self.requestSerializer setValue:value forHTTPHeaderField:forKey]; @@ -238,6 +242,10 @@ static void (^reachabilityChangeBlock)(int); return reachabilityStatus; } ++(bool) getOfflineState { + return offlineState; +} + +(void) setReachabilityChangeBlock:(void(^)(int))changeBlock { reachabilityChangeBlock = changeBlock; } diff --git a/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache b/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache index 41f964044a1..ed3f5a2b38e 100644 --- a/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache @@ -64,6 +64,20 @@ extern NSString *const {{classPrefix}}ResponseObjectErrorKey; */ +(void) setOfflineState:(BOOL) state; +/** + * Gets if the client is unreachable + * + * @return The client offline state + */ ++(bool) getOfflineState; + +/** + * Sets the client reachability, this may be override by the reachability manager if reachability changes + * + * @param The client reachability. + */ ++(void) setReachabilityStatus:(AFNetworkReachabilityStatus) status; + /** * Gets the client reachability * diff --git a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.h b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.h index 306ef4aeff5..a9e9590610e 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.h +++ b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.h @@ -73,6 +73,20 @@ extern NSString *const SWGResponseObjectErrorKey; */ +(void) setOfflineState:(BOOL) state; +/** + * Gets if the client is unreachable + * + * @return The client offline state + */ ++(bool) getOfflineState; + +/** + * Sets the client reachability, this may be override by the reachability manager if reachability changes + * + * @param The client reachability. + */ ++(void) setReachabilityStatus:(AFNetworkReachabilityStatus) status; + /** * Gets the client reachability * diff --git a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m index 5792adaca2e..042f282b885 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m +++ b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m @@ -53,6 +53,10 @@ static void (^reachabilityChangeBlock)(int); cacheEnabled = enabled; } ++(void) setReachabilityStatus:(AFNetworkReachabilityStatus)status { + reachabilityStatus = status; +} + - (void)setHeaderValue:(NSString*) value forKey:(NSString*) forKey { [self.requestSerializer setValue:value forHTTPHeaderField:forKey]; @@ -238,6 +242,10 @@ static void (^reachabilityChangeBlock)(int); return reachabilityStatus; } ++(bool) getOfflineState { + return offlineState; +} + +(void) setReachabilityChangeBlock:(void(^)(int))changeBlock { reachabilityChangeBlock = changeBlock; } diff --git a/samples/client/petstore/objc/SwaggerClient/SWGName.h b/samples/client/petstore/objc/SwaggerClient/SWGName.h index 5d390761827..fd34af7b66a 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGName.h +++ b/samples/client/petstore/objc/SwaggerClient/SWGName.h @@ -17,4 +17,6 @@ @property(nonatomic) NSNumber* name; +@property(nonatomic) NSNumber* snakeCase; + @end diff --git a/samples/client/petstore/objc/SwaggerClient/SWGName.m b/samples/client/petstore/objc/SwaggerClient/SWGName.m index 849e7f0d3f4..e11242833c1 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGName.m +++ b/samples/client/petstore/objc/SwaggerClient/SWGName.m @@ -20,7 +20,7 @@ */ + (JSONKeyMapper *)keyMapper { - return [[JSONKeyMapper alloc] initWithDictionary:@{ @"name": @"name" }]; + return [[JSONKeyMapper alloc] initWithDictionary:@{ @"name": @"name", @"snake_case": @"snakeCase" }]; } /** @@ -30,7 +30,7 @@ */ + (BOOL)propertyIsOptional:(NSString *)propertyName { - NSArray *optionalProperties = @[@"name"]; + NSArray *optionalProperties = @[@"name", @"snakeCase"]; if ([optionalProperties containsObject:propertyName]) { return YES; From 87495a747fde95a29be43bf4c7ab4c4aec12ebb7 Mon Sep 17 00:00:00 2001 From: Stuart Campbell Date: Tue, 22 Mar 2016 11:33:33 +0000 Subject: [PATCH 5/7] Changed tense of override to overridden. --- .../src/main/resources/objc/ApiClient-header.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache b/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache index ed3f5a2b38e..b7ec5bb6021 100644 --- a/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache @@ -72,7 +72,7 @@ extern NSString *const {{classPrefix}}ResponseObjectErrorKey; +(bool) getOfflineState; /** - * Sets the client reachability, this may be override by the reachability manager if reachability changes + * Sets the client reachability, this may be overridden by the reachability manager if reachability changes * * @param The client reachability. */ From 84af7cf3de5980858c7566cdc49a1df11373f4ee Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 22 Mar 2016 22:09:50 +0800 Subject: [PATCH 6/7] =?UTF-8?q?add=20beemo,=20FH=20M=C3=BCnster?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index afea03e601f..227fc4dfb8d 100644 --- a/README.md +++ b/README.md @@ -729,6 +729,7 @@ Here are some companies/projects using Swagger Codegen in production. To add you - [Activehours](https://www.activehours.com/) - [Acunetix](https://www.acunetix.com/) - [Atlassian](https://www.atlassian.com/) +- [beemo](www.beemo.eu) - [CloudBoost](https://www.CloudBoost.io/) - [Cupix](http://www.cupix.com) - [DocuSign](https://www.docusign.com) @@ -736,6 +737,7 @@ Here are some companies/projects using Swagger Codegen in production. To add you - [eureka](http://eure.jp/) - [everystory.us](http://everystory.us) - [Expected Behavior](http://www.expectedbehavior.com/) +- [FH Münster - University of Applied Sciences](www.fh-muenster.de) - [LANDR Audio](https://www.landr.com/) - [LiveAgent](https://www.ladesk.com/) - [nViso](http://www.nviso.ch/) From abee93b2c5efcc9c8bd5b7cca1c369bb0fe45b7d Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 22 Mar 2016 22:20:26 +0800 Subject: [PATCH 7/7] fix links without http:// --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 227fc4dfb8d..05ae20b06b9 100644 --- a/README.md +++ b/README.md @@ -729,7 +729,7 @@ Here are some companies/projects using Swagger Codegen in production. To add you - [Activehours](https://www.activehours.com/) - [Acunetix](https://www.acunetix.com/) - [Atlassian](https://www.atlassian.com/) -- [beemo](www.beemo.eu) +- [beemo](http://www.beemo.eu) - [CloudBoost](https://www.CloudBoost.io/) - [Cupix](http://www.cupix.com) - [DocuSign](https://www.docusign.com) @@ -737,7 +737,7 @@ Here are some companies/projects using Swagger Codegen in production. To add you - [eureka](http://eure.jp/) - [everystory.us](http://everystory.us) - [Expected Behavior](http://www.expectedbehavior.com/) -- [FH Münster - University of Applied Sciences](www.fh-muenster.de) +- [FH Münster - University of Applied Sciences](http://www.fh-muenster.de) - [LANDR Audio](https://www.landr.com/) - [LiveAgent](https://www.ladesk.com/) - [nViso](http://www.nviso.ch/)