Compare commits

...

1851 Commits

Author SHA1 Message Date
Tony Tam
cc0d29f3ec fixed javadoc plugin 2016-01-06 12:30:24 -08:00
Tony Tam
ccea106148 Merge pull request #1827 from swagger-api/release-prepare
updated versions
2016-01-06 10:16:30 -08:00
Tony Tam
d4d4c43032 updated versions 2016-01-06 09:47:32 -08:00
Tony Tam
8c8e3227d9 Merge pull request #1826 from swagger-api/issue-1825
added serverPort detection from the spec
2016-01-06 09:41:06 -08:00
Tony Tam
ab91fc8c78 Merge pull request #1824 from wing328/php_update_reserved_wrod
Update reserved word list to include local variable names in API methods
2016-01-06 09:36:00 -08:00
Tony Tam
1110bd7a08 added to templates 2016-01-06 09:31:14 -08:00
Tony Tam
151de79a98 formatting 2016-01-06 09:31:06 -08:00
wing328
61bf45bda4 update typescript reserved word list to include local variable names
used in api methods
2016-01-06 23:58:58 +08:00
wing328
30445633d6 update objc reserved word list to include local variable name in api
methods
2016-01-06 23:58:58 +08:00
wing328
f033f59867 update reserved word list for C# .net 2.0 with local variable name in
api method
2016-01-06 23:58:58 +08:00
wing328
eeaf832cae update csharp reserved words with local variable names in api methods 2016-01-06 23:58:58 +08:00
wing328
22b5f02ec3 update python reserved words to include local variable names in api
methods
2016-01-06 23:58:58 +08:00
wing328
9ab27cd848 update reserved words for php and ruby to include local variable names
in api methods
2016-01-06 23:58:58 +08:00
Tony Tam
19ff7dc19c pom updates 2016-01-06 06:30:25 -08:00
Tony Tam
55cdf68192 Merge pull request #1823 from swagger-api/issue-1822
Added duplicate operation ID generation
2016-01-06 06:25:44 -08:00
Tony Tam
19c81bf7bd fix, tests for #1822 2016-01-06 05:29:44 -08:00
Tony Tam
8923a541c0 Merge pull request #1821 from swagger-api/issue-1819
adds a parentSchema name, escapes reserved words in java client
2016-01-05 16:53:07 -08:00
Tony Tam
ed4a729cd2 added internal names to reserved words list 2016-01-05 16:40:17 -08:00
Tony Tam
b074bfb852 updted to jdk 2016-01-05 16:12:40 -08:00
Tony Tam
e82c12ccf8 updated tests, added parentSchema 2016-01-05 16:12:03 -08:00
Tony Tam
5a956df108 updated jdk version 2016-01-05 16:11:17 -08:00
Tony Tam
d5f17a1c3b Merge pull request #1818 from swagger-api/issue-1817
updated parentModel names in inheritence situations
2016-01-05 15:22:22 -08:00
Tony Tam
ba9bd11a8d updated parentModel names in inheritence situations 2016-01-05 14:58:36 -08:00
Tony Tam
e83cea0a48 Update Dockerfile 2016-01-05 12:30:02 -08:00
Tony Tam
3d6a3e28c2 Update .travis.yml 2016-01-05 12:29:48 -08:00
Tony Tam
4a56369662 Update README.md 2016-01-05 12:25:22 -08:00
Tony Tam
19beb90c27 Update .travis.yml 2016-01-05 12:23:38 -08:00
Tony Tam
8d120a0330 updated scripts 2016-01-05 06:08:22 -08:00
Tony Tam
e1afe7da65 remove println 2016-01-05 05:02:45 -08:00
Tony Tam
380d8c1d15 added config help, example for https://github.com/swagger-api/swagger-codegen/pull/1784#issuecomment-168599569 2016-01-05 05:02:05 -08:00
Tony Tam
ceadea10aa Merge pull request #1813 from swagger-api/issue-1811
added Docker support
2016-01-05 04:31:49 -08:00
Tony Tam
69e7990fe1 updated to enable docker 2016-01-05 04:08:52 -08:00
Tony Tam
a57be19870 updated to install bundler 2016-01-05 03:59:55 -08:00
wing328
1acf5d2ff4 Merge pull request #1816 from xhh/android-volley-library
[Android] Change the android-volley client codegen to an Android library (sub template)
2016-01-05 17:19:05 +08:00
wing328
0635c60cf1 Merge pull request #1815 from wing328/java_server_fix_import
[Java] To fix missing imports in inline models in server templates
2016-01-05 17:06:36 +08:00
xhh
beabe8cda2 Merge branch 'master' into android-volley-library
Conflicts:
	modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidClientCodegen.java
2016-01-05 16:39:15 +08:00
wing328
e21edea98c add sh to generate all java petstore client 2016-01-05 15:07:48 +08:00
wing328
3eb78b12ef Merge pull request #1814 from wing328/master
[Java] To fix missing imports in inline models for java (retrofit, okhttp)
2016-01-05 15:05:40 +08:00
wing328
5a74370180 fix import for java server templates 2016-01-05 15:02:18 +08:00
wing328
99d19575f0 fix missing object import in java (retrofit, okhttp) 2016-01-05 14:44:26 +08:00
Tony Tam
fe151bcb67 . 2016-01-04 21:12:43 -08:00
Tony Tam
43928a7726 enabled docker 2016-01-04 20:25:45 -08:00
Tony Tam
881d1407dc exclusions 2016-01-04 20:24:15 -08:00
Tony Tam
4a5dd60182 added Dockerfile 2016-01-04 20:21:15 -08:00
Tony Tam
a45b72e4da updated to include swagger-ui in war file 2016-01-04 20:21:09 -08:00
Tony Tam
608f045bd0 removed debug level 2016-01-04 20:20:51 -08:00
Tony Tam
40a11004b3 removed logic to make default location 2016-01-04 20:20:37 -08:00
Tony Tam
37a370e662 updated default port 2016-01-04 20:19:16 -08:00
Tony Tam
d18d848729 added relative file logic 2016-01-04 20:19:00 -08:00
wing328
ba8e992806 Merge pull request #1807 from wing328/java_fix_import
[Java] To fix missing imports in inline models
2016-01-05 11:45:50 +08:00
wing328
54a8ebd7d8 Merge pull request #1808 from wing328/python_add_reserved_word
[Python] add 'self' as a reserved keyword to python
2016-01-05 10:30:06 +08:00
wing328
4597d27fe9 add self as a reserved keyword to python 2016-01-05 10:17:07 +08:00
wing328
6967c0c2c7 add comment about java.utils.Objects 2016-01-05 09:59:27 +08:00
wing328
ff9e04e4dd fix #1804 2016-01-05 09:52:33 +08:00
Tony Tam
90d1e280ed Merge pull request #1805 from lugaru1234/options-default-value
Default values have been added to the boolean options
2016-01-04 08:31:22 -08:00
lugaru1234
b88e96ae10 Default values have been added to the boolean options 2016-01-04 16:33:34 +03:00
xhh
bed94ac3d0 Add the missing "volley" dependency 2016-01-04 20:22:33 +08:00
xhh
0103c2f906 Change the android-volley client codegen to an Android library 2016-01-04 19:09:07 +08:00
wing328
563cabe931 Merge pull request #1499 from arnested/collectionFormat
Accept arrays as arguments to collection parameters in PHP client.
2016-01-04 15:41:25 +08:00
wing328
d741ce0d91 Merge pull request #1729 from benmccann/rm-bin
Remove bin directory
2016-01-04 15:31:09 +08:00
wing328
dee885e9f5 Merge pull request #1803 from Tengah/issue-1802
Fixed configuration of host in api_client so that it gets done at run-time not load-time
2016-01-04 15:19:07 +08:00
wing328
c56252e4a0 Merge pull request #1801 from MyPureCloud/issue-1799
Issue 1799 - Inherited classes must come before implemented interface…
2016-01-04 14:52:45 +08:00
wing328
106f20fe51 Merge pull request #1800 from MyPureCloud/issue-1797
Issue 1797 - Adding assembly info
2016-01-04 14:51:40 +08:00
wing328
c315d7f3df Merge pull request #1775 from Shyri/android-volley
Android volley client generator
2016-01-04 14:30:55 +08:00
wing328
ef24b66c6c Merge pull request #1731 from evigeant/feature/jaxrs-no-sys-property
[jaxrs] Updated generator to use additional properties instead of system properties
2016-01-04 11:48:00 +08:00
wing328
3072247ca9 Merge pull request #1792 from xhh/java-model-indented
[Java] Update imports in models of Java clients
2016-01-04 11:04:25 +08:00
Tony Tam
3b8fe6a3cd Merge pull request #1794 from DevFactory/staging/Local-Variables-should-not-be-declared-and-then-immediately-returned-or-thrown-fix-4
Local Variables should not be declared and then immediately returned or thrown
2016-01-03 17:06:49 -08:00
Arne Jørgensen
1292fe4dfd Regenerated PHP petstore sample. 2016-01-03 22:59:15 +01:00
Arne Jørgensen
d71d164843 Accept arrays as arguments to collection parameters. 2016-01-03 22:45:07 +01:00
evigeant
ca67e3506b Fixed idententation to use spaces instead of tab 2016-01-03 15:07:27 -05:00
evigeant
5867608ee1 Merge branch 'master' into feature/jaxrs-no-sys-property
Conflicts:
	modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JaxRSServerCodegen.java
	modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JaxRSServerOptionsProvider.java
2016-01-03 08:18:31 -05:00
Bob Pasker
dfae08adc8 in Python, a method as the default value of a formal parameter defines the value when the module is loaded (normally at import time), not when the method is invoked 2015-12-31 18:10:19 -05:00
unknown
58694d0623 Issue 1799 - Inherited classes must come before implemented interfaces in the class definition
* Switched the order of parent class and the interface
2015-12-31 15:34:25 -07:00
unknown
6b39fde35a Issue 1797 - Adding assembly info
* New mustache template created for AssemblyInfo.cs
* Properties added to the C# codegen file to specify the assembly property values and adding AssemblyInfo.mustache to list of supporting files
2015-12-31 14:58:26 -07:00
Kirill Vlasov
6fc871db38 Fixing squid:S1488 - Local Variables should not be declared and then immediately returned or thrown 2015-12-31 17:08:59 +05:00
xhh
f4581d3008 Update imports in models of Java clients
- Remove the StringUtil import which is no longer needed
- Remove duplicated imports of Objects and io.swagger.annotations.*
- Only include jackson related imports in the Java clients needing it
  (i.e. the default, jersey2 and feign Java clients)
2015-12-31 12:44:34 +08:00
Tony Tam
cafea6f726 Merge branch 'DevFactory-staging/serializable-classes-should-have-a-version-id-fix-3' 2015-12-30 19:58:43 -08:00
Tony Tam
b98085eaa5 merged 2015-12-30 19:58:28 -08:00
Tony Tam
1e2abbe422 Merge pull request #1774 from DevFactory/staging/redundant-field-initializer-fix-2
Redundant Field Initializer
2015-12-30 19:54:23 -08:00
Tony Tam
f73acc7c18 Merge pull request #1791 from scottrw93/master
Issue 1631 Valid yml definition generates API error in node js server
2015-12-30 19:51:44 -08:00
Tony Tam
470c17db36 removed printout 2015-12-30 19:48:06 -08:00
11356176
eb2c7708cb Issue 1631 Valid yml definition generates API error in node js server 2015-12-31 01:07:10 +00:00
Tony Tam
0c12971bbb Merge pull request #1790 from swagger-api/issue-1789
updated templates for pojos, enums
2015-12-30 16:21:09 -08:00
Tony Tam
4bd17323d5 pom cleanup 2015-12-30 15:18:00 -08:00
Tony Tam
88fab0b85f Merge branch 'master' into issue-1789 2015-12-30 15:06:54 -08:00
Tony Tam
bf93d48ef2 merged 2015-12-30 15:06:32 -08:00
Tony Tam
2081d9d154 added import-mappings documentation 2015-12-30 15:05:23 -08:00
Ron
9a54371ca9 Swagger Spec -> OpenAPI Spec 2015-12-30 14:52:15 -08:00
Tony Tam
adb3795a44 formatting 2015-12-30 14:51:43 -08:00
Tony Tam
e08e578c58 updated templates per #1789 2015-12-30 14:51:37 -08:00
Tony Tam
9ca914f769 updated jaxrs generator pojos 2015-12-30 14:20:52 -08:00
Tony Tam
83460ba81a improved install instructions 2015-12-30 13:40:58 -08:00
Tony Tam
788c70922d updated cli name 2015-12-30 13:40:51 -08:00
Tony Tam
f0dc103736 Merge pull request #1788 from swagger-api/issue-1764
made imports more intelligent
2015-12-30 13:25:44 -08:00
Tony Tam
ff6a9fc244 Merge pull request #1787 from swagger-api/issue-1454
added BigDecimal java serialization options
2015-12-30 13:16:25 -08:00
Tony Tam
d75e602168 made imports more intelligent 2015-12-30 13:16:08 -08:00
Tony Tam
1cd54ee685 added bigDecimalAsString option to allow serializing with strings 2015-12-30 12:32:37 -08:00
Tony Tam
ac7856d009 formatting 2015-12-30 12:27:31 -08:00
Tony Tam
6f324e069e Merge pull request #1786 from lugaru1234/options-type-fix
CliOption.type has been set to "boolean" for boolean options
2015-12-30 11:01:07 -08:00
Tony Tam
26c50ce0a3 Merge pull request #1785 from swagger-api/issue-1748
added `serverPort`
2015-12-30 11:00:58 -08:00
Tony Tam
460e5befec fixed index issue 2015-12-30 10:42:20 -08:00
lugaru1234
67bea9ec27 CliOption.type has ben set to boolean for boolean options 2015-12-30 18:17:45 +03:00
wing328
96889d47ba Merge pull request #1742 from icha024/master6
Spring-MVC config "j8-async": Uses async servlet & Java 8 interface
2015-12-30 17:00:35 +08:00
Tony Tam
05b0d8f1bf added serverPort 2015-12-30 00:06:24 -08:00
Tony Tam
8146f1dce6 Merge pull request #1750 from swagger-api/issue-1749
added library param
2015-12-30 00:05:05 -08:00
Tony Tam
b5e9ca0295 Merge pull request #1784 from swagger-api/issue-1035
adds configurable date library, prepares for multiple jaxrs versions
2015-12-29 23:57:08 -08:00
Tony Tam
405e09a057 added tests 2015-12-29 23:44:15 -08:00
Tony Tam
29f928d644 prepare for multiple jaxrs libraries 2015-12-29 23:28:31 -08:00
Tony Tam
ffe12b0620 added library, date library 2015-12-29 23:28:09 -08:00
wing328
0b841cb17a Merge pull request #1778 from bradmsmith/master
Update README.mustache
2015-12-30 15:06:27 +08:00
wing328
751051f0e9 Merge pull request #1776 from wing328/update_pom_commonio
Update Apache Common IO to the latest version (2.4)
2015-12-30 14:59:10 +08:00
wing328
dcad165871 Merge pull request #1783 from ModelSolv/Issue-1781
[Akka-Scala] Fix #1781 re specs w/o security defs
2015-12-30 14:49:44 +08:00
wing328
9782bf8981 Merge pull request #1780 from wing328/perl_fix_datetime
[Perl] fix DateTime mapping
2015-12-30 14:36:45 +08:00
wing328
974e0125ce Merge pull request #1768 from pculligan/master
Outstanding fix for #1173: Added support for vendor extensions on model and property
2015-12-30 14:20:24 +08:00
wing328
43b047c720 Merge pull request #1779 from wing328/php_remove_duplicated_mapping
[PHP] remove duplicated type mapping
2015-12-30 14:12:21 +08:00
wing328
0c4214b93c Merge pull request #1777 from xhh/java-model-indented
[Java] Move method StringUtil.toIndentedString to model
2015-12-30 13:54:36 +08:00
Shyri Villar
b41efdab5f updated android-volley build.gradle 2015-12-29 18:12:11 +01:00
Andy Lowry
e864994b62 [Akka-Scala] Fix #1781 re specs w/o security defs
Per issue recommendation, fix is to DefaultCodegen#fromSecurity, which
now returns an empty list rather than null if no securityDefinitions
property is present in the swagger spec
2015-12-29 11:58:28 -05:00
wing328
6180b7b059 Merge pull request #1720 from artem-dudarev/patch-2
[C#] Escape \r in XML comments
2015-12-30 00:40:30 +08:00
Shyri Villar
29c05b5d65 Added string responses [android-volley] 2015-12-29 15:47:38 +01:00
Shyri Villar
58cb5716cb move android-volley generated sample 2015-12-29 15:47:37 +01:00
Shyri Villar
69e1eecee0 Added petstore sample [android-volley] 2015-12-29 15:47:36 +01:00
Shyri Villar
2613e597dd Added petstore sample [android-volley] 2015-12-29 15:47:35 +01:00
Shyri Villar
8260c661b3 Fix AndroidManifest xml schema [android-volley] 2015-12-29 15:47:33 +01:00
Shyri Villar
d162fc5362 Add permissions to manifest [android-volley] 2015-12-29 15:47:32 +01:00
Shyri Villar
602abdd242 Added http basic authentication method [android-volley] 2015-12-29 15:47:31 +01:00
Shyri Villar
ea1cbdaf8f Fix API template [android-volley] 2015-12-29 15:47:30 +01:00
Shyri Villar
e9990d610f Fix API template [android-volley] 2015-12-29 15:47:29 +01:00
Shyri Villar
b91e5c95d5 Rename request templates and fixed patch request [android-volley] 2015-12-29 15:47:28 +01:00
Shyri Villar
a897a2f28b Added PATCH request [android-volley] 2015-12-29 15:47:26 +01:00
Shyri Villar
cb9e4bf961 Added DELETE request [android-volley] 2015-12-29 15:47:25 +01:00
Shyri Villar
a68ecf7809 Added [android-volley] petstore.sh 2015-12-29 15:47:24 +01:00
Shyri Villar
b28e0893f1 Added PUT request [android-volley] 2015-12-29 15:47:23 +01:00
Shyri Villar
9b2a04c787 Added Android-Volley to readme and pom 2015-12-29 15:47:22 +01:00
Shyri Villar
c30720289b Import corrections [android-volley] 2015-12-29 15:45:10 +01:00
Shyri Villar
3c275f1831 try catch when string response removed 2015-12-29 15:45:09 +01:00
Shyri Villar
2af665a8e3 Added ApiKeyAuth implementation [android-volley] 2015-12-29 15:45:08 +01:00
Shyri Villar
e054c3cfc0 Moved request templates [android-volley] 2015-12-29 15:45:06 +01:00
Shyri Villar
89b4d9b4e9 fixed requests packages and imports [android-volley] 2015-12-29 15:45:05 +01:00
Shyri Villar
5cfcb0b60b fixed response parsing in post request template [android-volley] 2015-12-29 15:45:04 +01:00
Shyri Villar
2e4f6dc0a1 Added error listeners in api template [android-volley] 2015-12-29 15:45:03 +01:00
Shyri Villar
cfdf2bc3b8 fix returnContainer [android-volley] 2015-12-29 15:45:02 +01:00
Shyri Villar
b55f8802ac throw volley error on body post null [android-volley] 2015-12-29 15:45:01 +01:00
Shyri Villar
f5aba6d0a5 removed faulty setuseragent [android-volley] 2015-12-29 15:45:00 +01:00
Shyri Villar
93ed2e639d added android-volley to CodegenConfig 2015-12-29 15:44:59 +01:00
Shyri Villar
b290d2d919 fix responses template [android-volley] 2015-12-29 15:44:57 +01:00
Shyri Villar
5c9606bc66 fix apiInvoker template imports [android-volley] 2015-12-29 15:44:56 +01:00
Shyri Villar
7b811ad44b various api template fixes [android-volley] 2015-12-29 15:44:55 +01:00
Shyri Villar
b9abe2b51d Added apiException template [android-volley] 2015-12-29 15:44:54 +01:00
Shyri Villar
84a22c8344 Added build.gradle and AndroidManifest [android-volley] 2015-12-29 15:44:53 +01:00
Shyri Villar
f5e757e6b9 Added build.gradle and AndroidManifest [android-volley] 2015-12-29 15:44:52 +01:00
Shyri Villar
52ebd25732 Added responses class [android-volley] 2015-12-29 15:44:51 +01:00
Shyri Villar
c80ff7ed0d Added responses class 2015-12-29 15:44:49 +01:00
Shyri Villar
980957b9a9 fix getrequest import [android-volley] 2015-12-29 15:44:48 +01:00
Shyri Villar
f3ff567d3f added default string response to api template [android-volley] 2015-12-29 15:44:47 +01:00
Shyri Villar
e098e8f372 Added PostRequest [android-volley] 2015-12-29 15:44:46 +01:00
Shyri Villar
5c79c21f3c fixed Api returnType [android-volley] 2015-12-29 15:44:45 +01:00
Shyri Villar
c3679893df Added jsonUtil and Pair android-volley 2015-12-29 15:44:43 +01:00
Shyri Villar
090839fe06 Added AndroidVolley ClientCodegen 2015-12-29 15:44:42 +01:00
Shyri Villar
acac1bb83b Added GetRequest template android-volley 2015-12-29 15:44:41 +01:00
Shyri Villar
efac324b73 Added api template android-volley 2015-12-29 15:44:40 +01:00
Shyri Villar
16bf228a41 Added model template android-volley 2015-12-29 15:44:38 +01:00
Shyri Villar
a2aeb5a129 Added ClientOptions android-volley 2015-12-29 15:44:37 +01:00
Shyri Villar
795b324fe5 Added imports to Android Volley apiInvoker 2015-12-29 15:44:36 +01:00
Shyri Villar
78352dd454 First steps on Android Volley ApiInvoker 2015-12-29 15:44:35 +01:00
wing328
564f6e2bb5 Merge pull request #1767 from xhh/java-simple-profiling
[Java] Add simple profiling for Java Petstore sample
2015-12-29 16:34:55 +08:00
wing328
e4078855f5 fix date mapping for perl 2015-12-29 16:29:20 +08:00
wing328
8882c36c91 fix perl datetime mapping 2015-12-29 15:21:38 +08:00
wing328
fed4ba3cf8 use DateTime for php date 2015-12-29 15:04:27 +08:00
wing328
11d6bb9a95 php remove duplicated type mapping 2015-12-29 15:00:56 +08:00
wing328
6e4d097710 Merge pull request #1769 from arnested/php-wildcard-response-code
Handle wildcard response codes correct in PHP
2015-12-29 14:49:01 +08:00
wing328
c5ccb3f8eb Merge pull request #1772 from xhh/ruby-inline-base-object
[Ruby] Remove base_object from Ruby model
2015-12-29 13:27:23 +08:00
Brad Smith
acc43e7f71 Update README.mustache
Fix broken link
2015-12-28 21:14:08 -08:00
wing328
745e4f7dc2 Merge pull request #1771 from wing328/perl_simple_model
[Perl] remove base_object from Perl model
2015-12-29 12:54:55 +08:00
xhh
3d4b5ff1c7 Java: Move method StringUtil.toIndentedString to model
Closes #1701
2015-12-29 12:30:54 +08:00
Ian Chan
3103846f45 Enforce Java 1.8 when generating spring-mvc with j8-async option
The spring-mvc j8-async code is now located in it's own sample directory
with Java 8 enforced via Maven plug-in.
2015-12-29 13:40:46 +13:00
wing328
861ea27db7 update pom commonio to latest version 2015-12-29 00:01:18 +08:00
Kirill Vlasov
7a63dd1416 Fixing pmd:RedundantFieldInitializer - Redundant Field Initializer 2015-12-28 17:38:54 +05:00
xhh
670e56f692 Remove base_object from Ruby model
and move methods from base_object to each model so that model files will
have no dependency when generating "models only"
2015-12-28 17:42:33 +08:00
wing328
d6125483cf remove commented code in perl 2015-12-28 16:32:41 +08:00
wing328
7b10023784 update perl sample 2015-12-28 16:12:18 +08:00
wing328
fa9844af7e remove baseobject from perl, add README.mustache 2015-12-28 16:08:43 +08:00
wing328
3a2447634c Merge pull request #1766 from wing328/swift_promisekit_3
[Swift] update promisekit and alamofire to the latest version
2015-12-28 16:01:52 +08:00
wing328
858d44a27f Merge pull request #1761 from xhh/ruby-timeout
Ruby client: add "timeout" to configuration
2015-12-27 23:42:53 +08:00
Arne Jørgensen
84c35bd0cb Regenerated PHP petstore sample. 2015-12-27 15:29:08 +01:00
Tony Tam
cbfdffb09a Merge pull request #1734 from wing328/fix_array_inline_response
Fix array/map inline response/model
2015-12-27 06:18:01 -08:00
Arne Jørgensen
6a45111e10 Handle wildcard response codes correct in PHP
Wildcard response codes was handled like all other response codes
resulting in a misleading construction like this:

```
            switch ($e->getCode()) {
            case 0:
                $data = $this->apiClient->getSerializer()->deserialize($e->getResponseBody(), '\Swagger\Client\Model\Error', $e->getResponseHeaders());
                $e->setResponseObject($data);
                break;
            }
```

This commit fixes it to use the default fallback of the PHP switch
statement:

```
            switch ($e->getCode()) {
            default:
                $data = $this->apiClient->getSerializer()->deserialize($e->getResponseBody(), '\Swagger\Client\Model\Error', $e->getResponseHeaders());
                $e->setResponseObject($data);
                break;
            }
```
2015-12-27 15:17:18 +01:00
Patrick Culligan
3266fbbf81 corrected JavaDos issues that were UNRELATED to this PR to get the CI server moving. 2015-12-26 18:18:14 -06:00
Patrick Culligan
ef1222f2bf Added support for vendor extensions on model and property 2015-12-26 17:29:56 -06:00
xhh
a2c020f9e8 Add simple profiling for Java Petstore sample 2015-12-26 16:48:49 +08:00
wing328
5638027179 remove downloadImage from petstore.json 2015-12-26 16:15:58 +08:00
wing328
6124062a70 update promisekit and alamofire to the latest version 2015-12-26 16:12:56 +08:00
wing328
89daeb3bf8 Merge pull request #1755 from xhh/java-timeout
Java okhttp-gson client: get/set connect timeout
2015-12-25 14:50:10 +08:00
Ian Chan
916793b820 Added spring-mvc-petstore-j8-aysnc-server.sh executable.
Added the executable and config file for spring-mvc's j8-async target.
2015-12-25 16:34:35 +13:00
xhh
8fa14446e3 Add milliseconds hint to comment of getConnectTimeout 2015-12-24 17:56:19 +08:00
xhh
43c0d20743 Ruby client: add "timeout" to configuration 2015-12-24 14:54:39 +08:00
wing328
732212cdb2 Merge pull request #1763 from wing328/update_pom
Update pom to use latest core and parser
2015-12-24 14:31:40 +08:00
wing328
9181b6b0a7 update pom to use latest core and parser 2015-12-24 14:13:18 +08:00
Tony Tam
3e5f23dc7a Merge pull request #1759 from ePaul/feature/1743-fix-gitignore-for-eclipse-settings
Fix #1743 by removing `*/` from the .settings ignore line.
2015-12-23 10:15:34 -08:00
Paŭlo Ebermann
f2a510912b Fix #1743 by removing */ from the .settings ignore line.
`*/.settings` applies to just the directory below the current one, where there is no such file.
`.settings` applies to all files/directories named such in the whole project.
2015-12-23 19:12:03 +01:00
Tony Tam
609240c389 Merge pull request #1757 from swagger-api/issue-1756
Add binary, byte array properties
2015-12-23 05:59:33 -08:00
Tony Tam
7381b816ff fixes #1756 2015-12-23 05:50:46 -08:00
xhh
a58901f375 Java okhttp-gson client: get/set connect timeout 2015-12-23 18:58:16 +08:00
Ian Chan
638ee88830 Removed Jersey2 test from spring-mvc codegen
The previous patch to allow sub options to spring-mvc had removed the
invalid Jersey2 option from spring-mvc codegen, this patch also fixes
the associated test.
2015-12-23 10:29:47 +13:00
wing328
55fece195d Merge pull request #1733 from DevFactory/staging/override-annotation-should-be-used-where-necessary-fix-1
Fixing squid:S1161 - @Override annotation should be used where necessary
2015-12-22 22:22:46 +08:00
Tony Tam
b46e3ad400 updated for #1749 2015-12-21 22:16:11 -08:00
wing328
7305b9b4e1 Merge pull request #1745 from wing328/fix_need_to_import
Fix default needToImport
2015-12-22 14:00:01 +08:00
wing328
aa55c95d1b fix default needToImport 2015-12-21 14:12:19 +08:00
wing328
391d0b9f9d Merge pull request #1741 from wing328/csharp_set_timeout
[C#] add timeout and update default constructor with optional value
2015-12-20 23:35:20 +08:00
Ian Chan
29b4098a8d Spring-MVC config "j8-async": Uses async servlet & Java 8 interface
default

This template is mainly for Maven code-gen plugin use-case - when
Swagger spec on existing project changes there is no need to manually
copy/paste the new functions from the generated client. This will
provide a default (empty) implementation to existing impl and user just
need to override the stub implementation.

Because it generates an interface instead of a concrete stub, an
implementation will be needed to actuate a service end-point. And don't
forget to put @Controller on the implementation!
2015-12-20 09:53:41 +13:00
wing328
2cc5924498 update test case, docstring for timeout 2015-12-19 23:15:54 +08:00
wing328
0aa4d2fb8e csharp add timeout, fix default constructor 2015-12-19 22:55:52 +08:00
Tony Tam
968c943c44 more enum support 2015-12-18 10:58:30 -08:00
Tony Tam
24ed12f448 Merge pull request #1740 from swagger-api/issue-1357
Add generation of enum models
2015-12-18 09:34:31 -05:00
wing328
7e3ad18faf Merge pull request #1725 from hacki11/patch-1
[C#] fix filename and Content-Disposition parsing on FileStream
2015-12-18 21:23:25 +08:00
Tony Tam
a3a269c801 Merge branch 'master' into issue-1357 2015-12-18 08:13:20 -05:00
Tony Tam
5814cd47bc updated parser for #1357 2015-12-18 08:12:31 -05:00
Tony Tam
5b0b759e4e added enum class support 2015-12-18 08:12:15 -05:00
wing328
c1dda0ca17 update test case for inline model 2015-12-18 16:50:55 +08:00
wing328
20755bde2b Merge pull request #1735 from xhh/javascript-testing
[Javascript] NPM module, bug fixes, clean-ups, unit tests
2015-12-18 11:44:34 +08:00
xhh
1777124e62 Javascript: remove call to apiClietn.parameterToString 2015-12-17 21:37:04 +08:00
xhh
1b0294dac0 Javascript: fix the constructFromObject issue
Closes #1721
Also fixed indentations in models
2015-12-17 21:29:58 +08:00
xhh
a58f755a6a Escape path parameters with encodeURIComponent
and tweak the test command
2015-12-17 21:19:28 +08:00
xhh
180d2ae908 Merge branch 'master' into javascript-testing 2015-12-17 20:42:37 +08:00
xhh
f07b75f419 Include Javascript client into integration test
and return the promise-like result of $.ajax for API
2015-12-17 20:41:09 +08:00
xhh
794783a4bb Javascript: bug fixes, clean-ups, tests
- Fix the "apiClient.escapeString" issue
- Remove unused code in api.mustache
- Add test case for creating and getting Pet
2015-12-17 20:05:00 +08:00
xhh
dcfe40fc44 Configure Javascript tests to allow running in browser 2015-12-17 18:51:12 +08:00
wing328
03e3a2d0dd remove logger, replace tab with space 2015-12-17 18:05:39 +08:00
xhh
146b4a4813 Use a more real jquery mocking in test 2015-12-17 18:00:09 +08:00
wing328
c8c047a2bc fix map in inline model 2015-12-17 17:55:47 +08:00
wing328
2e143ec054 fix map of inline response 2015-12-17 17:39:55 +08:00
wing328
13b03d92d4 update response to support array of inline model 2015-12-17 17:01:14 +08:00
wing328
c8a10aee33 add support for inline array model defined in inline model 2015-12-17 16:44:35 +08:00
wing328
c5c1712374 fix array of inline model body parameter 2015-12-17 15:44:22 +08:00
evigeant
e19d4228e9 Fixed CodeGen tests following addition of implFolder additional property
in jaxrs
2015-12-16 22:22:01 -05:00
wing328
b073dce1e7 Merge pull request #1726 from tomekc/alamofire-bump-31
Bumped Alamofire library (dependency for Swift client). Alamofire 3.1.x is compatible with previous version and resolves a few annoying bugs, like proper handling of empty HTTP responses.
2015-12-17 10:46:44 +08:00
evigeant
6f4f293943 Updated jaxrs generator to use additional properties instead of java
properties which are very difficult to set from maven
2015-12-16 21:41:43 -05:00
Ben McCann
89be4231db Remove bin directory 2015-12-16 16:09:25 -08:00
hacki11
5f13484157 - add downloadImage to Petstore
- fixed equal instead of ':' after Content-Disposition
- added definition of file (swagger-maven-plugin generates them)
2015-12-17 00:14:21 +01:00
Tomek Cejner
5a1c6e6c17 Updated samples, and cartfile 2015-12-16 21:55:31 +01:00
xhh
cc408a0dd7 Add unit tests to Javascript Petstore sample 2015-12-17 00:32:50 +08:00
xhh
2c1d8b19d2 Make Javascript client a Node.js (NPM) module 2015-12-16 23:51:48 +08:00
Tomek Cejner
10885790f8 Bumped alamofire to 3.1.x 2015-12-16 14:56:37 +01:00
xhh
625e712d7b Javascript: add package.json 2015-12-16 19:57:44 +08:00
xhh
199c4f70ad Add some config options to Javascript client codegen 2015-12-16 19:57:44 +08:00
wing328
0078dc11d1 Merge pull request #1703 from evigeant/feature/simple-jaxrs-serialization
Simplify Jersey and Jersey2 client serialization
2015-12-16 11:32:11 +08:00
hacki11
322e7a4b4b [C#] fix filename and Content-Disposition parsing on FileStream 2015-12-15 23:33:48 +01:00
xhh
3f3e444ab1 Some clean-ups for the Javascript client codegen 2015-12-15 23:00:09 +08:00
wing328
89f269969d Merge pull request #1716 from wing328/csharp_config_remove_static
[C#] remove some static methods in configuration
2015-12-15 19:51:29 +08:00
wing328
adf7ffb3a8 Merge pull request #1718 from artem-dudarev/patch-1
[C#] Fixed ArgumentOutOfRangeException. Optimized string concatenation.
2015-12-15 18:31:53 +08:00
Kirill Vlasov
4ed0173a21 Fixing squid:S2057 - Serializable classes should have a version id 2015-12-15 15:03:33 +05:00
Artyom
b1869c1cae Escape \r in XML comments
Workaround for #1336
2015-12-15 11:21:20 +02:00
Kirill Vlasov
49a6d0e6c1 Fixing squid:S1161 - @Override annotation should be used on any method overriding (since Java 5) or implementing (since Java 6) another one 2015-12-15 14:09:31 +05:00
Artyom
fbf4d0e419 Fixed ArgumentOutOfRangeException
If the list is empty you get the ArgumentOutOfRangeException when calling flattenString.Remove(flattenString.Length - 1).
Also using a StringBuilder is the prefered way to concatenate strings in a loop.
2015-12-15 10:51:04 +02:00
wing328
b01b414aae add constructor to configuration 2015-12-14 22:26:32 +08:00
wing328
f03bc1f3bc remove some static methods in configuration 2015-12-14 16:07:41 +08:00
wing328
2a5b96dbcf Merge pull request #1698 from xhh/ruby-config
Ruby client: allow setting Configuration in ApiClient
2015-12-14 15:14:08 +08:00
wing328
99c40ae8a0 Merge pull request #1706 from mirthy/issue-1705
[C#] Fix date-time serialization to be ISO 8601
2015-12-14 15:05:07 +08:00
wing328
0d3fdba764 Merge pull request #1714 from wing328/ruby_sinatra_fix
[Ruby][Sinatra] fix bug with adding routes and add swagger.yaml
2015-12-14 11:32:28 +08:00
wing328
1596944ef5 Merge pull request #1712 from xhh/ruby-property-doc
[Ruby] Place properties on separate lines with description
2015-12-14 10:41:21 +08:00
wing328
909ec298af update regex to non-greedy match 2015-12-13 18:18:49 +08:00
wing328
1dd05bb90f add swagger.yaml to ruby sinatra 2015-12-13 17:39:52 +08:00
wing328
bef2dac022 fix add route in sinatra 2015-12-13 17:22:30 +08:00
xhh
ddc4b0a548 Ruby: place properties on separate lines with description 2015-12-12 21:33:32 +08:00
wing328
79033e57fe Merge pull request #1709 from xhh/ruby-profiling
[Ruby] Add simple profiling script and results for Ruby Petstore sample
2015-12-12 16:27:53 +08:00
Jeff Kwan
e0582ae912 Added the ability to customize the DateTimeFormat
Updated Configuration to have a DateTimeFormat
Added Unit Tests for Configuration.DateTimeFormat
Cleaned up namespaces in SwaggerClientTest
Added an embedded resource for testing uploads
2015-12-11 18:28:37 -05:00
evigeant
8fc27b5f0c Fixed a bug where the JSON.mustache file was removed from the jersey2
code generation
2015-12-11 12:57:05 -05:00
xhh
4272e9c027 Add profiling script and results for Ruby Petstore sample 2015-12-11 23:24:19 +08:00
wing328
ca3f0cc4df Merge pull request #1708 from wing328/php_profile
[PHP] add profiling script and result for php
2015-12-11 15:57:34 +08:00
wing328
2a8afbec8d Merge pull request #1697 from wing328/objc_minor_style
[ObjC] minor style change for objc client
2015-12-11 14:43:38 +08:00
wing328
3acb5d60a0 add swgger client profiling for php 2015-12-11 14:36:28 +08:00
wing328
207b14283c Merge pull request #1702 from wing328/php_profile
[PHP] add Php profiler for petstore sample
2015-12-11 12:29:17 +08:00
wing328
5ea073816d Merge pull request #1693 from xhh/clojure-json-mime
[Clojure] Use case-insensitive checking on JSON MIME in Clojure client
2015-12-11 11:52:11 +08:00
Jeff Kwan
ca26608b28 Add some tests for time zones 2015-12-10 20:42:30 -05:00
Jeff Kwan
74d80289dd Add a unit test for the datetime serialization 2015-12-10 20:28:44 -05:00
Jeff Kwan
23fa84bff8 Add some reasonable comments to this 2015-12-10 20:03:29 -05:00
Jeff Kwan
cf3144d31f [C#] Fix date-time serialization to be ISO 8601
Fix the date-time serialization so that it's actually ISO 8601
compliant, currently it generates a date-time string
Issue #1705
2015-12-10 19:56:10 -05:00
wing328
2bb2ab6cad Merge pull request #1700 from wing328/java_feign_update_test
[Java] Update Feign client sample and test cases
2015-12-11 00:41:22 +08:00
evigeant
a3024a3553 Updated PetStore sample for java client jersey2 2015-12-10 10:45:47 -05:00
evigeant
0f67be5590 Simplified Jersey2 java client by letting Jersey do most serialization
and deserialization
2015-12-10 10:45:46 -05:00
evigeant
d51746d7fa Updated PetStore sample for Java client (default) 2015-12-10 10:43:30 -05:00
evigeant
ee39977726 Let Jersey do the serialization and deserialization (including JSON) 2015-12-10 10:43:28 -05:00
evigeant
84ee958117 Simplified Jersey ApiClient by delegating much serialization to Jersey 2015-12-10 09:21:53 -05:00
wing328
9faf6f4068 add php profiler for petstore, fix empty/null string check 2015-12-10 18:55:28 +08:00
wing328
1bab13ab27 Merge pull request #1689 from xhh/java-json-mime
[Java] Improve the checking of JSON MIME
2015-12-10 17:22:40 +08:00
wing328
5ef169de15 update sample and test case for java feign 2015-12-10 16:37:56 +08:00
wing328
f5693b6c73 update sample and test case for java feign 2015-12-10 16:35:38 +08:00
wing328
83dc5393cb Merge pull request #1625 from davidkiss/master
adding support for both Java client using Netflix Feign and JMeter tests
2015-12-10 16:07:48 +08:00
xhh
e9ef143d8f Ruby client: allow setting Configuration in ApiClient
Removed the singleton design from the Configuration class.
Added a `config` field to ApiClient to hold the settings the ApiClient
uses.
2015-12-10 15:25:07 +08:00
wing328
75a1f97a1e minor style change for objc client 2015-12-10 15:21:52 +08:00
wing328
b2b06d72d5 Merge pull request #1685 from mateuszmackowiak/master
Support for extended 'application/json' HeaderAccept types
2015-12-10 14:52:05 +08:00
wing328
2b6b500c35 Merge pull request #1688 from wing328/objc_model_default_value
[ObjC] add default value to ObjC model properties
2015-12-10 14:17:16 +08:00
wing328
1241cdc8aa Merge pull request #1687 from wing328/python_default_value
[Python] add default value to python model's properties
2015-12-10 14:09:29 +08:00
David Kiss
0d19b30c99 using isBodyParam instead of vendorExtention.x-isBody 2015-12-09 23:12:42 -05:00
wing328
ae17f97c99 Merge pull request #1537 from lugaru1234/ensureUniqueParamsRefactor
Code refactoring: ensureUniqueParams default value has been moved from description to the defaultValue field
2015-12-09 23:02:20 +08:00
xhh
63092b8923 Clojure client: use case-insensitive checking on JSON MIME 2015-12-09 22:55:49 +08:00
wing328
7642314b20 Merge pull request #1690 from thibaultclem/master
[Javascript] Fix syntax issue when generating Javascript client operation without parameters
2015-12-09 18:01:54 +08:00
thibaultclem
7c72552780 Update JS Client Petstore samples after fixing issue on the JS api.mustache 2015-12-09 16:32:18 +07:00
wing328
fcd3d3dce1 Merge pull request #1683 from xhh/ruby-default-value
[Ruby] Add default value to Ruby model
2015-12-09 17:15:00 +08:00
thibaultclem
8e0816b5dd Fix syntax issue when generating Javascript client operation without parameters 2015-12-09 16:11:08 +07:00
xhh
ba48f8712d Add test case for the "json_mime?" method 2015-12-09 16:34:53 +08:00
xhh
be0bc71c86 Improve checking of JSON MIME in Java default and jersey2
to support suffix like charset in "application/json; charset=UTF8"
2015-12-09 16:30:55 +08:00
wing328
e767a7d6d8 add default value to objc model properties 2015-12-09 16:21:00 +08:00
xhh
921659be5c Improve checking of JSON MIME in Java okhttp-gson client
to support suffix like charset in "application/json; charset=UTF8"
2015-12-09 16:09:15 +08:00
wing328
36dfa15f93 Merge pull request #1680 from wing328/php_default_value
[PHP] add default value to PHP model
2015-12-09 15:39:34 +08:00
wing328
bf3c1d36d5 add default value to python model 2015-12-09 15:34:39 +08:00
Tony Tam
2e81bf34ce Merge branch 'master' of github.com:swagger-api/swagger-codegen 2015-12-08 20:40:42 -08:00
Tony Tam
78158d79ca updated instructions 2015-12-08 20:40:34 -08:00
xhh
4fdaeb7371 Improve checking of JSON MIME 2015-12-09 12:38:38 +08:00
xhh
b896c9169a Add comments to model classes in Ruby client 2015-12-09 11:30:48 +08:00
xhh
21bd4fbbc1 Add default value to Ruby model 2015-12-09 11:30:09 +08:00
wing328
a866c7fef4 Merge pull request #1682 from wing328/cpp_improve_test
[Qt5] improve Qt5 test cases
2015-12-09 11:19:34 +08:00
wing328
0dd2ebc78e Merge pull request #1679 from wing328/csharp_default_value
[C#] add default member's value for C# models
2015-12-09 10:43:26 +08:00
wing328
f2af05737a Merge pull request #1677 from xhh/ruby-api-with-http-info
Added with-http-info API methods to Ruby client
2015-12-09 10:34:03 +08:00
Mateusz Mackowiak
a01dfb693b Support for extended 'application/json' HeaderAccept types 2015-12-08 18:52:59 +01:00
wing328
258bb27f30 Merge pull request #1672 from wing328/php_add_http_info
[PHP] add `WithHttpInfo` method to return HTTP status code and response headers
2015-12-08 18:31:43 +08:00
wing328
bf63be3a63 improve cpp test case 2015-12-08 17:23:54 +08:00
wing328
2e6da5c0d2 Merge pull request #1678 from lmikkelsen/qt5-include
Replace #import with #include in the Qt5 generator
2015-12-08 17:00:52 +08:00
wing328
4b656c516f add default value to php model 2015-12-08 15:59:46 +08:00
wing328
b122107a80 Merge pull request #1653 from ianmcorvidae/clojure-tweaks
Clojure client: docstrings tweaks
2015-12-08 15:21:45 +08:00
wing328
d7fe8e5505 Merge pull request #1670 from xhh/java-api-with-http-info
Add WithHttpInfo API methods to Java okhttp-gson client
2015-12-08 15:17:03 +08:00
wing328
f9f0992cc8 add default member's value for C# models 2015-12-08 15:09:30 +08:00
Lars Mikkelsen
0cef7116e8 Replace #import with #include in the Qt5 generator
The SWGHelpers.cpp file uses non-standard #import statements. This
causes the following error when built using Visual Studio 2013:

SWGHelpers.cpp(4): fatal error C1083: Cannot open type library file:
'c:\qt\qt5.5.1\5.5\msvc2013_64\include\qtcore\qdebug': Error loading
type library/DLL.
2015-12-07 23:30:37 -05:00
David Kiss
1723078508 added support in feign for binary uploads 2015-12-07 22:34:38 -05:00
David Kiss
538ccb3f12 Merge remote-tracking branch 'xhh2/davidkiss-master'
Conflicts:
	samples/client/petstore/java/feign/README.md
	samples/client/petstore/java/feign/build.gradle
	samples/client/petstore/java/feign/pom.xml
	samples/client/petstore/java/feign/settings.gradle
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/ApiClient.java
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/StringUtil.java
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/api/PetApi.java
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/api/StoreApi.java
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/api/UserApi.java
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/model/Category.java
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/model/Order.java
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/model/Pet.java
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/model/Tag.java
	samples/client/petstore/java/feign/src/main/java/io/swagger/client/model/User.java
2015-12-07 21:29:14 -05:00
wing328
9ed5b863c4 Update README.md 2015-12-07 16:58:51 +08:00
wing328
b4c6fc20cb Update CONTRIBUTING.md 2015-12-07 16:38:07 +08:00
wing328
105e3e3327 Create CONTRIBUTING.md 2015-12-07 16:36:32 +08:00
xhh
07de03c09b Return data before response status code and headers 2015-12-07 16:10:24 +08:00
xhh
66112d9eb5 Added with-http-info API methods to Ruby client
to allow accessing response status code and headers, and removed the methods of
recording last response info from ApiClient.
2015-12-07 15:48:59 +08:00
David Kiss
eb4acd0971 added unit tests to feign client 2015-12-07 01:13:20 -05:00
xhh
80ed75eef0 Add more javadoc to Java okhttp-gson client 2015-12-07 12:23:50 +08:00
wing328
d1361ab529 Merge pull request #1673 from wing328/js_add_bin
[Javascript] add bin and petstore samples
2015-12-07 12:04:51 +08:00
wing328
b40ee50167 Add batch file for running on Windows, update JS client 2015-12-07 11:53:38 +08:00
xhh
b1bc75189a Add WithHttpInfo API methods to Java okhttp-gson client
to allow accessing response status code and headers
and removed the methods of recording last response info from
ApiClient.
2015-12-07 11:17:32 +08:00
wing328
c5a48d9891 Merge pull request #1664 from xhh/clojure-resp-info
Support accessing response status code and headers in Clojure client
2015-12-07 10:55:14 +08:00
wing328
7aab20485a add bin and petstore samples for JS 2015-12-07 10:53:40 +08:00
wing328
e2679b2aa7 Merge pull request #1671 from jfiala/master
Add basic Javascript SDK support
2015-12-07 10:35:02 +08:00
wing328
340e60002e more style change for php client 2015-12-07 00:52:30 +08:00
wing328
442f87c19a minor style change for php functions 2015-12-07 00:42:25 +08:00
wing328
17b14fa281 update php sample 2015-12-07 00:37:22 +08:00
wing328
11466570f7 php add test case for withinfo method returnig void 2015-12-07 00:30:17 +08:00
wing328
b282d4fbea add http_parse_headers, update test case 2015-12-06 23:58:25 +08:00
wing328
19b409eeaf Merge pull request #1571 from wing328/ts_node_fix_url
[TypeScript][Node] remove url API, fix test case
2015-12-06 23:14:32 +08:00
Johannes Fiala
b0e3be8fb3 add AMD support #1294 2015-12-06 13:45:08 +01:00
Johannes Fiala
a7f754faad Cleanup unused code from Java template in Javascript 2015-12-06 12:08:17 +01:00
Johannes Fiala
d9e024a7bf Cleanup mandatoryParam variable in mustache and Codegen, replaced using
-last
2015-12-06 12:06:23 +01:00
wing328
bb341832a5 add http info to php api methods 2015-12-06 19:00:52 +08:00
Johannes Fiala
b3588da6b7 add @const to enumeration values #1294 2015-12-06 11:02:05 +01:00
Johannes Fiala
529a7abfce Add missing template files #1294 2015-12-06 10:40:30 +01:00
Johannes Fiala
da15cf7867 Ignore settings #1294 2015-12-06 10:38:50 +01:00
Johannes Fiala
8fd6b604d3 Add all required parameters as default constructor parameters #1294 2015-12-06 10:37:06 +01:00
Johannes Fiala
1a8a03ee52 cleanup unused templates #1294 2015-12-06 10:36:12 +01:00
Johannes Fiala
7b64816107 Merge branch 'master' of https://github.com/jfiala/swagger-codegen 2015-12-06 10:34:03 +01:00
Johannes Fiala
34fb2c561f cleanup build error due to missing CodegenConfig configuration entry
#1294
2015-12-06 10:33:52 +01:00
Johannes Fiala
3c3c93a53d refine handling of nested properties #1294 2015-12-05 21:11:55 +01:00
Johannes Fiala
637b9937a8 Merge branch 'master' of https://github.com/jfiala/swagger-codegen 2015-12-05 20:34:55 +01:00
Johannes Fiala
e95e0c88cb add support for clean response object creation in the API class #1294 2015-12-05 20:32:19 +01:00
Johannes Fiala
2b4c6d926e Merge branch 'master' of https://github.com/jfiala/swagger-codegen
Conflicts:
	modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java
2015-12-05 17:44:45 +01:00
Johannes Fiala
7c4471a4d6 Adapt output path for api/model 2015-12-05 17:43:35 +01:00
Johannes Fiala
adb26d83f7 Add basic JS SDK support, see Document client SDK #1294 2015-12-05 17:35:18 +01:00
wing328
9367b7f6a6 Merge pull request #1643 from wing328/csharp_refactor
[C#] refactor code to support multiple API keys in multi-threading environment
2015-12-05 11:16:34 +08:00
Ian McEwen
4edeed6053 Clojure client: put docstrings in the right place in core.clj. 2015-12-04 10:01:07 -07:00
wing328
a2025c286e Merge pull request #1652 from wing328/issue1623
[PHP] fix issue with PHP codegen in Windows
2015-12-04 22:50:53 +08:00
wing328
ddd52f613f remove logging from php generator 2015-12-04 22:37:16 +08:00
wing328
e182ad7897 add log to php code gen 2015-12-04 22:29:29 +08:00
wing328
1f68d0f7b0 fix issue with petstore in windows 2015-12-04 18:54:12 +08:00
wing328
7fd281a98e Merge pull request #1665 from wing328/windows_batch
Add Windows batch files to generate Petstore API client samples
2015-12-04 18:28:00 +08:00
wing328
fe96d8769f minor fix to csharp and objc batch file 2015-12-04 18:16:46 +08:00
wing328
3f328a4994 add batch files for other languages 2015-12-04 18:08:59 +08:00
wing328
14ec9c42cb add ruby windows patch, fix php batch file 2015-12-04 17:48:48 +08:00
wing328
0818f0c8ad add batch script for php 2015-12-04 17:38:29 +08:00
xhh
4dde0a793d Accessing response status code and headers in Clojure client
Closes #1656
2015-12-04 17:23:57 +08:00
wing328
ab520e41be update return tag in documentation (C#) 2015-12-04 17:07:20 +08:00
wing328
e5cd37ee9b Merge pull request #1659 from xhh/clojure-auth
Improvements on Clojure client: authentications, collectionFormat
2015-12-04 12:37:37 +08:00
wing328
0cd801b952 add async with http info method to C# client 2015-12-03 22:09:40 +08:00
wing328
dd28075a0e add back deprecated method 2015-12-03 17:33:25 +08:00
xhh
9d6b1bb224 Support collectionFormat for array parameters in Clojure client
Closes #1655
2015-12-03 17:25:27 +08:00
wing328
4482f71e05 add apiresponse.mustache 2015-12-03 16:47:14 +08:00
wing328
506b8d2b77 add WithHttpInfo method 2015-12-03 16:34:51 +08:00
xhh
afb7e31e21 Add authentications support to Clojure client
Closes #1654
2015-12-03 13:25:59 +08:00
wing328
a5a4f8c7e0 add api response to C# 2015-12-03 11:10:34 +08:00
wing328
409d66bdd2 Merge pull request #1651 from xhh/jersey2-upload
Fix file uploading issue with Java jersey2 client codegen
2015-12-03 10:10:42 +08:00
wing328
d1c31a53f1 Merge pull request #1647 from evigeant/master
Fixed xml validation in web.xml
2015-12-03 10:00:05 +08:00
wing328
330053902e Merge pull request #1649 from xhh/clojure-escape-char
[Clojure] Escape characters for text in Clojure client
2015-12-03 00:07:53 +08:00
xhh
d11a19d171 Fix file uploading issue with Java jersey2 client codegen
Closes #1650
2015-12-02 18:31:02 +08:00
wing328
cea8ad40cd make apiclient less mutable 2015-12-02 16:01:29 +08:00
wing328
5bb444ba6d Merge pull request #1644 from wing328/objc_special_word
[ObjC] escape objc special words with "var"
2015-12-02 10:50:34 +08:00
wing328
032faf7c89 Merge pull request #1646 from wing328/jaxrs_security2
[JAX-RS] Inject JAX-RS SecurityContext information into JAX-RS server implementation
2015-12-02 10:43:15 +08:00
xhh
2b9fe5c9bf Escape characters for text in Clojure client
Closes #1648
2015-12-02 10:25:30 +08:00
evigeant
d49b0e3afd Fixed xml validation in web.xml 2015-12-01 12:05:26 -05:00
wing328
b2bfe8de51 update sample 2015-12-01 23:36:43 +08:00
Nick Maynard
acda5d0bc5 Update samples for JAXRS server SecurityContext
Conflicts:
	samples/server/petstore/jaxrs/src/gen/java/io/swagger/model/Category.java
	samples/server/petstore/jaxrs/src/gen/java/io/swagger/model/Order.java
	samples/server/petstore/jaxrs/src/gen/java/io/swagger/model/Pet.java
	samples/server/petstore/jaxrs/src/gen/java/io/swagger/model/Tag.java
	samples/server/petstore/jaxrs/src/gen/java/io/swagger/model/User.java
2015-12-01 23:36:43 +08:00
Nick Maynard
f9185c3f6f JAXRS server :: Inject SecurityContext into every operation 2015-12-01 23:36:43 +08:00
wing328
76de987cd2 Merge pull request #1614 from xhh/auto-generate-operation-id
Auto generate operationId for python-flask server codegen
2015-12-01 17:58:08 +08:00
wing328
d5e394bfcc restore petstore sample 2015-12-01 17:47:37 +08:00
wing328
c64f352ba6 escape objc special word with var 2015-12-01 17:44:07 +08:00
wing328
70dd3a6e4b update to handle model without any properties 2015-12-01 16:28:23 +08:00
wing328
0abe787b58 add default api client 2015-12-01 16:17:22 +08:00
xhh
eb0e47461c Add petstore client sample for Java-feign 2015-12-01 16:13:31 +08:00
wing328
c9f2380f0f add test case for status code and response header 2015-12-01 14:08:20 +08:00
wing328
a78f33581a Merge pull request #1622 from xhh/not-escape-enum-value
[Java] Fix issue of escaping HTML elements in enum values
2015-12-01 11:51:23 +08:00
Tony Tam
ce9f8baefc Merge pull request #1642 from swagger-api/inflector-update
updated templates, files
2015-11-30 10:43:01 -08:00
Tony Tam
88d8ea23e3 updated templates, files 2015-11-30 10:24:15 -08:00
David
21e8822343 cleaned up output folder from repo 2015-11-30 10:44:32 -05:00
davidkiss
340e8b3671 reverting changes to swagger-codegen pom.xml 2015-11-30 10:41:44 -05:00
davidkiss
bb4589dca1 cleaned up README.md 2015-11-30 10:40:12 -05:00
317959997
9cfb1c91db removing references to fork in te main README.md file 2015-11-30 10:31:01 -05:00
317959997
44c2751d80 added missing files to support JMeter 2015-11-30 10:27:16 -05:00
317959997
62c9a3d96f Merge remote-tracking branch 'origin/master' 2015-11-30 10:26:14 -05:00
317959997
83223ae6d0 rolling back previous accidental push on changes to pom.xml files 2015-11-30 10:25:12 -05:00
David Kiss
ff7d177de3 Delete gen-config.json 2015-11-30 10:21:00 -05:00
317959997
845dd22942 added missing JMeter files 2015-11-30 10:18:29 -05:00
wing328
5494b694b7 Merge pull request #1458 from gaalandr/params_support_2.0_spec
fix: codegen does not support spec 2.0 properties for parameters:
2015-11-30 22:02:12 +08:00
xhh
2c6c902878 Merge branch 'master' into auto-generate-operation-id
Conflicts:
	modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/api.mustache
2015-11-30 21:05:47 +08:00
xhh
ba549a966e Merge branch 'master' into not-escape-enum-value
Conflicts:
	modules/swagger-codegen/src/main/resources/Java/enumClass.mustache
2015-11-30 21:00:05 +08:00
wing328
6405fba663 add test cases for configuration 2015-11-30 20:12:58 +08:00
wing328
bb086a7f91 refactor apiclient, configuration, authentication for c# client 2015-11-30 19:45:08 +08:00
wing328
f2aac7a858 Merge pull request #1634 from wing328/objc_update_test_case
[ObjC] skip findPetByStatus test case for objc due to invalid data
2015-11-30 16:14:04 +08:00
wing328
d7460dac32 Merge pull request #1633 from wing328/fix_window_test_case
Add exception handling in the test case (for Windows)
2015-11-30 13:24:13 +08:00
wing328
2bb129b094 skip findPetByStatus test case for objc due to invalid data 2015-11-30 11:45:27 +08:00
wing328
90c93522b3 undo ios sample change 2015-11-30 10:59:51 +08:00
wing328
96003a1e90 fix typo 2015-11-30 10:57:22 +08:00
wing328
1913b0594f Merge pull request #1628 from wing328/csharp_optional_parameter
[C#] add optional parameter to c# API client
2015-11-30 00:09:25 +08:00
wing328
6685bad8de Merge pull request #1629 from wing328/fix_gradle_var
[Java][Retrofit2] update retrofit2 gradle to use double quote
2015-11-29 23:32:37 +08:00
wing328
a41ca7278a update retrofit2 gradle to use double quote 2015-11-29 23:21:44 +08:00
wing328
aadc07396d add better exception handling in test case 2015-11-29 18:31:14 +08:00
wing328
2d34f567ff Merge pull request #1619 from EduGraph/issue-1075
[PHP] Slim Framework v3 - Server Generator #1075
2015-11-29 00:54:03 +08:00
wing328
a9fdb8f424 Merge pull request #1630 from wing328/java_update_sample1
[Java] update java petstore sample
2015-11-29 00:39:07 +08:00
wing328
3e213267aa update java petstore sample 2015-11-29 00:18:34 +08:00
wing328
e1eac1ed5d Merge pull request #1621 from dantran/master
Honor Enum's value
2015-11-29 00:08:21 +08:00
wing328
dfc0813a18 add optional parameter to c# api client (enabled by default) 2015-11-28 15:40:44 +08:00
317959997
a7f225b6ac added support for generating JMeter project from swagger 2015-11-27 12:25:00 -05:00
317959997
7272cb0feb fixed feign api template 2015-11-27 12:21:59 -05:00
jfastnacht
41936ab5c9 Adjusted index.mustache to fit camelCase variable naming.
Updated index.php sample.
2015-11-27 15:37:25 +01:00
jfastnacht
aebfacaa22 Adjusted codegen to fit pull request comments in https://github.com/swagger-api/swagger-codegen/pull/1619 2015-11-27 15:25:40 +01:00
xhh
7731bc9d37 Fix issue of escaping HTML elements in enum values
See swagger-api/swagger-editor#727
2015-11-27 17:32:31 +08:00
dantran
dfda666806 Honor Enum's value 2015-11-26 21:57:37 -08:00
317959997
4b9b7a6a01 updated README.md on the new Netflix Feign library 2015-11-26 13:37:58 -05:00
317959997
3cf8f24a07 updated README.md on the new Netflix Feign library 2015-11-26 13:37:19 -05:00
317959997
077a24f694 updated README.md on the new Netflix Feign library 2015-11-26 13:34:33 -05:00
317959997
be944650df added initial Netflix Feign support 2015-11-26 13:30:04 -05:00
wing328
bf19d99e5e Merge pull request #1618 from xhh/non-model-body-param
Do not resolve non-model body parameter as inline model
2015-11-26 22:32:55 +08:00
xhh
4531bc41eb Update CodegenTest to apply InlineModelResolver to swagger 2015-11-26 17:44:56 +08:00
xhh
d250ce3bec Do not resolve non-model body parameter as inline model 2015-11-26 17:16:28 +08:00
wing328
1fbdb92625 Merge pull request #1613 from xhh/ruby-eql-hash
[Ruby] Add "==", "eql?" and "hash" methods to Ruby client
2015-11-26 10:29:59 +08:00
wing328
cc6cb176f8 Merge pull request #1600 from zxy198717/master
add upload & downlod progress for Java okhttp
2015-11-26 09:59:34 +08:00
wing328
037616e2d9 Merge pull request #1609 from xhh/java-equals-hash-code
[Java] Add "equals" and "hashCode" methods to Java servers: "jaxrs" and "spring-mvc"
2015-11-25 22:07:34 +08:00
xhh
27e43d3fbb Implement toOperationId for python-flask server codegen
and use "operationId" in the template to replace
vendorExtensions.x-operationId
2015-11-25 19:43:31 +08:00
xhh
801efaa3d4 Replace "nickname" with "operationId" in some API templates 2015-11-25 18:13:39 +08:00
Alvin Zeng
c69f396928 merge 2015-11-25 18:04:16 +08:00
xhh
6675cbc20e Auto generate operationId for python-flask server codegen 2015-11-25 17:55:04 +08:00
Alvin
cc58711490 update okhttp-gson samples 2015-11-25 15:17:43 +08:00
wing328
a55088c3cd fix php access token setter 2015-11-25 15:14:04 +08:00
wing328
0bc0d1808e add eq for python, update test case 2015-11-25 15:14:03 +08:00
Tony Tam
0cb8e4ca69 updated readme, base path 2015-11-25 15:14:03 +08:00
xhh
630def9d19 Add "equals" and "hashCode" methods to Java clients
for the "retrofit" and "retrofit2" libraries
2015-11-25 15:14:03 +08:00
xhh
5ae96c61a9 Add "equals" and "hashCode" methods to Java clients
Added for the default, "jersey2" and "okhttp-gson" clients
2015-11-25 15:14:03 +08:00
wing328
3b308bd36f update auth for php to skip empty apikey/username,password 2015-11-25 15:14:03 +08:00
xhh
11d7e44756 Use separate library to do base64 encoding in Java
default and jersey2 clients to make it work in both JVM and Android
2015-11-25 15:14:03 +08:00
wing328
ff3ba73d18 add documentation to test cases in C# 2015-11-25 15:14:03 +08:00
wing328
0ed70dcb4d update basic auth to allow only username/password 2015-11-25 15:14:02 +08:00
wing328
d5b80ac8cd better auth for C#, format change 2015-11-25 15:14:02 +08:00
wing328
6712754f6a Add python flask 2015-11-25 15:14:02 +08:00
wing328
a2982c248a add test case for pet equal 2015-11-25 15:14:02 +08:00
wing328
1496bf89b9 add equal and gethashcode to C# model 2015-11-25 15:14:02 +08:00
xhh
136d0aaa87 Use okhttp's Credentials class to build basic auth string 2015-11-25 15:14:02 +08:00
wing328
1d47ca69fe update perl auth to skip null apikey/username&password 2015-11-25 15:14:02 +08:00
xhh
e4ac6ef033 Ignore auths when value not specified in Java clients 2015-11-25 15:14:01 +08:00
wing328
7c0fd4b85f update python auth to skip empty token/username,password 2015-11-25 15:12:04 +08:00
Testo Nakada
5a5a716bfd - make Meta generator take the swagger code gen version
- generate the class name correctly if the name contains hyphen
2015-11-25 15:12:04 +08:00
xhh
0dac326230 Add "==", "eql?" and "hash" methods to Ruby client 2015-11-25 11:46:43 +08:00
wing328
d589facb21 Merge pull request #1610 from wing328/python_add_equal
[Python] add eq for python, update test case
2015-11-25 10:59:35 +08:00
wing328
cf947811df Merge pull request #1611 from wing328/php_fix_accesstoken
[PHP] fix access token setter
2015-11-25 10:58:21 +08:00
wing328
ddc4d8460d fix php access token setter 2015-11-25 00:00:26 +08:00
wing328
b592819e3b add eq for python, update test case 2015-11-24 17:36:38 +08:00
wing328
34a021cdb5 Merge pull request #1596 from wing328/csharp_auth_update
[C#] better authentication, minor format change
2015-11-24 16:27:21 +08:00
xhh
76fe8357ce Add "equals" and "hashCode" methods to Java servers
for "jaxrs" and "spring-mvc"
2015-11-24 15:46:42 +08:00
wing328
a7e1e128f6 Merge pull request #1605 from xhh/java-equals-hash-code
[Java] Add "equals" and "hashCode" methods to Java clients
2015-11-24 15:38:20 +08:00
Tony Tam
bbb7fb5abc updated readme, base path 2015-11-23 14:27:22 -10:00
jfastnacht
d38933f927 Added model.mustache for basic class definitions. Added sample class files. 2015-11-23 17:49:19 +01:00
jfastnacht
70efc066b5 Added notes, output formats, header params and body params 2015-11-23 16:43:13 +01:00
jfastnacht
a81d8c56e3 Adjusted index.mustache to fit Slim Framework v3
Added composer support for Slim Framework v3 RC
Updated samples
2015-11-23 15:34:36 +01:00
xhh
f2a8955926 Add "equals" and "hashCode" methods to Java clients
for the "retrofit" and "retrofit2" libraries
2015-11-23 19:59:44 +08:00
wing328
3872599be2 Merge pull request #1406 from testn/fix-meta
Use the version from the codegen for meta generator
2015-11-23 17:20:46 +08:00
xhh
2e51aa5076 Add "equals" and "hashCode" methods to Java clients
Added for the default, "jersey2" and "okhttp-gson" clients
2015-11-23 15:57:14 +08:00
wing328
5183683692 Merge pull request #1603 from xhh/java-ignore-empty-auth-values
[Java] Improvements on authentications
2015-11-23 15:08:46 +08:00
wing328
09082ab2cb Merge pull request #1604 from wing328/php_update_auth
[PHP] update auth for PHP API client to skip empty API key/username,password
2015-11-23 11:29:36 +08:00
wing328
df6acdd3cf Merge pull request #1602 from wing328/python_auth_update
[Python] update python authentication to skip empty token/username, password
2015-11-23 01:41:02 +08:00
wing328
e11a3d468e update auth for php to skip empty apikey/username,password 2015-11-22 18:35:45 +08:00
xhh
fc3925a1cd Merge branch 'master' into java-ignore-empty-auth-values 2015-11-22 16:35:34 +08:00
xhh
4f831e032c Use separate library to do base64 encoding in Java
default and jersey2 clients to make it work in both JVM and Android
2015-11-22 16:27:14 +08:00
wing328
11daa87e44 add documentation to test cases in C# 2015-11-22 16:14:16 +08:00
wing328
9d76d39c00 update basic auth to allow only username/password 2015-11-22 16:09:15 +08:00
wing328
a9da01a451 better auth for C#, format change 2015-11-22 16:08:35 +08:00
wing328
c6021da8a1 Merge pull request #1601 from wing328/csharp_obj_compare
[C#] Add Equal and GetHashCode to models
2015-11-22 15:41:40 +08:00
wing328
6f27a8512d Add python flask 2015-11-22 00:06:12 +08:00
Alvin
98396d04a7 update sample & test 2015-11-21 20:12:11 +08:00
Alvin
dc65b5647f update okhttp-gson samples 2015-11-21 19:42:01 +08:00
wing328
3988c28c4b Merge pull request #1597 from wing328/perl_auth_update
[Perl] better authentication, minor format change
2015-11-21 18:55:16 +08:00
wing328
a8119049ad add test case for pet equal 2015-11-21 15:16:38 +08:00
Alvin
b9cf790d1c add upload & downlod progress for Java okhttp 2015-11-21 15:06:00 +08:00
wing328
1ce3b67aa4 add equal and gethashcode to C# model 2015-11-21 13:22:00 +08:00
xhh
81cf57a00b Use okhttp's Credentials class to build basic auth string 2015-11-20 20:10:05 +08:00
wing328
8303374aa5 update perl auth to skip null apikey/username&password 2015-11-20 17:36:17 +08:00
xhh
b823e8bd35 Ignore auths when value not specified in Java clients 2015-11-20 17:34:46 +08:00
wing328
271661aec7 update python auth to skip empty token/username,password 2015-11-20 17:01:21 +08:00
wing328
c150247dca Merge pull request #1579 from xhh/fix-java-date-format
[Java okhttp-gson] Fix datetime format for Android
2015-11-20 15:59:07 +08:00
wing328
5c50e08965 Merge pull request #1591 from xhh/clojure-client
[Clojure] Integration tests and config options
2015-11-20 08:54:03 +08:00
Andras Gaal
ab062b1386 fix boolean getter errors 2015-11-19 15:15:48 +01:00
Andras Gaal
2c52cc1d86 Merge branch 'masterswaggerio' into params_support_2.0_spec
Conflicts:
	.gitignore
2015-11-19 15:09:08 +01:00
xhh
d198a5a419 Add support config options to Clojure client 2015-11-19 17:38:08 +08:00
xhh
1358a39d0d Include the petstore clojure client into integration tests 2015-11-19 16:04:27 +08:00
wing328
ff1dd034a8 Merge pull request #1585 from xhh/clojure-client
Add a Clojure client codegen
2015-11-19 10:58:40 +08:00
gaalandr
b9c1158bfe Update CodegenParameter.java 2015-11-18 17:52:32 +01:00
Tony Tam
7727d740f0 Merge pull request #1584 from swagger-api/issue-1582
added connexion python server generator
2015-11-18 08:45:22 -06:00
Tony Tam
041eb94a27 renamed 2015-11-18 08:44:45 -06:00
jfastnacht
65b9f9dcce Added basic Slim Framework support based on silex-PHP 2015-11-18 15:05:05 +01:00
wing328
46d675225f Merge pull request #1580 from CrossfireCurt/master
[Java jersey2] Update Jersey to 2.12 for generated clients
2015-11-18 21:56:41 +08:00
xhh
50c27d258c Merge branch 'master' into clojure-client 2015-11-18 17:27:29 +08:00
xhh
473aab2d8e Support file uploading in Clojure client 2015-11-18 17:21:32 +08:00
Tony Tam
f95409210b fixed cp bug 2015-11-18 00:43:52 -06:00
Tony Tam
5e68bd58fc fixed swagger listing 2015-11-18 00:33:49 -06:00
Tony Tam
7f62576d88 added connexion 2015-11-18 00:17:33 -06:00
Tony Tam
5db7f6ebb9 updated configuration for system properties 2015-11-18 00:17:21 -06:00
Tony Tam
d71d5ac119 added files 2015-11-17 20:14:53 -08:00
Tony Tam
1e2449c568 Merge pull request #1583 from swagger-api/issue-1581
fixes #1581, rebuilt server
2015-11-17 19:53:25 -08:00
Tony Tam
28c4946945 added initial files 2015-11-17 19:51:48 -08:00
Tony Tam
c7e5c305a9 fixes #1581, rebuilt server 2015-11-17 18:46:33 -08:00
Curt Hostetter
951e56071f Ran ./bin/java-petstore-jersey2.sh to update the Petstore sample 2015-11-17 11:18:55 -05:00
Curt Hostetter
5eacb4d12c Update Jersey to 2.12
to help MIMEXXX.tmp cleanup https://github.com/swagger-api/swagger-codegen/issues/1576
2015-11-17 09:38:34 -05:00
xhh
431cdc9c37 Java okhttp-gson: fix datetime format for Android
by detecting the current environment (Android SDK version and Java
version) and determine a default datetime format accordingly

Closes #1573
2015-11-17 17:54:13 +08:00
wing328
f1e86f861e Merge pull request #1574 from wing328/csharp_fix_class_name
[C#] add logic to handle model and its property having the same name
2015-11-17 10:17:01 +08:00
wing328
ce7a707ec1 reapply the fix after rebase 2015-11-17 10:06:38 +08:00
wing328
a4e5b5334f Merge pull request #1572 from wing328/csharp_remove_restsharp_extension
[C#] remove dependency on RestSharp extension
2015-11-17 09:53:48 +08:00
xhh
473d34ef76 Merge branch 'master' into clojure-client 2015-11-17 00:47:49 +08:00
xhh
9cf7cd9ef6 And bin/clojure-petstore.sh and build the petstore clojure client sample 2015-11-17 00:47:12 +08:00
xhh
31cb5b1167 Add serialize method to handle JSON serialization 2015-11-17 00:36:52 +08:00
xhh
ff5b1c86ba Set project URL and license from spec 2015-11-16 23:04:17 +08:00
xhh
cd8cfc50ed Add Clojure client codegen 2015-11-16 18:00:43 +08:00
wing328
b815163ceb replace restsharp extension functions with functions in apiclient 2015-11-16 11:30:34 +08:00
wing328
95d8585dce Merge pull request #1534 from xhh/java-datetime-format
[Java] Improvement date-time format in Java clients
2015-11-16 09:57:52 +08:00
wing328
9789eb4ee8 remove url form ts-node, fix test case 2015-11-15 18:26:36 +08:00
wing328
96f71e420a Merge pull request #1543 from dvz5/master
Moose role, docs, and automatic docs
2015-11-14 18:26:49 +08:00
Dave Baird
40f8012cbc Minor cleanup 2015-11-13 21:52:44 +01:00
Dave Baird
5f61d5465e Merge remote-tracking branch 'upstream/master' 2015-11-13 18:32:31 +00:00
Dave Baird
995a1f547f Removed endpoint API class documentation code
- there is no standard way for a swagger spec to define descriptive
information for an endpoint API
- added markdown as a format to the autodoc script
- added some version information to autogenerated docs
2015-11-13 19:30:47 +01:00
wing328
302272ba9c Merge pull request #1563 from conet/master
Fix typo in swift error variable name.
2015-11-13 09:59:26 +08:00
Dave Baird
970c94a4d9 autodoc retrieves descriptions for delegated methods 2015-11-12 16:55:20 +01:00
Cristian Oneț
f8db16c5cd Fix typo in swift error variable name. 2015-11-12 17:10:10 +02:00
wing328
30c361edd7 Merge pull request #1548 from conet/master
The swift code generator can't handle endpoints that return an array of objects
2015-11-12 23:04:58 +08:00
Dave Baird
25c19135ff autodoc can analyse arbitrary classes
- added -c option to load and analyse any class
2015-11-12 14:55:48 +01:00
Dave Baird
c097696276 Added more formats to autodoc output
- narrow
- wide
- POD
- HTML
2015-11-12 13:03:04 +01:00
wing328
08bb339398 Merge pull request #1559 from wing328/remove_setting_files
Remove eclipse file
2015-11-12 19:52:18 +08:00
xhh
93c6966501 Fix code of customizing date-time format in test 2015-11-12 17:34:12 +08:00
wing328
ee60b5f4f1 Merge pull request #1494 from cbornet/android_manifest
Add android manifest to java codegen
2015-11-12 17:17:01 +08:00
wing328
6d470d1896 remove eclipse files 2015-11-12 17:14:20 +08:00
xhh
6b3fc79dec Merge branch 'master' into java-datetime-format 2015-11-12 17:10:08 +08:00
xhh
55bcceac07 Fix tests on date format by using custom date format 2015-11-12 17:10:03 +08:00
wing328
7603bd7b7c Merge pull request #1558 from wing328/ts_remove_linebreak
[TypeScript] remove extra line break in documentation
2015-11-12 16:41:37 +08:00
wing328
cbc63d3285 remove line break in TS methods' comment 2015-11-12 16:13:10 +08:00
Dave Baird
389ce144ef Improved documentation methods
- API classes have rudimentary class doc info and useful method doc info
- object classes have more detailed method and class info
- added more tests for doc methods
2015-11-12 00:36:30 +01:00
Dave Baird
3ca7ce6ce6 Merge remote-tracking branch 'upstream/master' 2015-11-11 23:24:39 +00:00
wing328
52320e5f71 Merge pull request #1541 from cbornet/retrofit_oauth_loop
[Retrofit] Don't retry if the access token doesn't change
2015-11-11 21:32:41 +08:00
wing328
edfeb48c12 Merge pull request #1550 from wing328/scala_better_test
[Scala] better scala test (UserApi)
2015-11-11 21:21:49 +08:00
wing328
d5f5d43c36 Merge pull request #1553 from aersamkull/master
Adds comments to TypeScript Generator & updates samples
2015-11-11 21:00:30 +08:00
aersamkull
684062ccbf Updates samples 2015-11-11 13:47:09 +01:00
Dave Baird
2144cf5d31 Handle missing security spec more elegantly
- remove the optional auth_setup_handler() callback mechanism
- add _global_auth_setup() method on ApiClient to analyse config when
security spec not provided
- add methods on the Configuration class to abstract getting and setting
tokens
2015-11-11 13:43:40 +01:00
Cristian Oneț
d125b9c490 Update swift petstore client. 2015-11-11 14:21:52 +02:00
aersamkull
2886ca0312 Adds comments to TypeScript Generator 2015-11-11 11:54:42 +01:00
wing328
05efd193c0 update test username for scala 2015-11-11 16:42:00 +08:00
wing328
cbd1b98bf5 better scala test (UserApi) 2015-11-11 16:35:17 +08:00
Cristian Oneț
cf8d8deacd For each object and a decoder that can handle an array of objects.
Otherwise REST endpoints that return a list of resources can't be used.
2015-11-10 21:19:32 +02:00
wing328
8836644d37 Merge pull request #1546 from xhh/java-enum-array
Fix error with array of enum in Java client
2015-11-10 23:39:21 +08:00
Dave Baird
06db67210c Tiny doc tweak 2015-11-10 14:50:22 +01:00
Dave Baird
92a758e1b3 Merge remote-tracking branch 'upstream/master' 2015-11-10 13:23:40 +00:00
Dave Baird
77b9f51927 More documentation, and clean up a couple of ragged edges
- added documentation for configuring authentication
- made auth_setup_handler() optional
- get_api_key_with_prefix() is more self-documenting
2015-11-10 14:22:32 +01:00
wing328
e00d102c47 Merge pull request #1545 from emilianobonassi/support_retrofit2
Add support to Retrofit2
2015-11-10 20:43:19 +08:00
Emiliano Bonassi
e104803781 fix pom.xml added retrofit2 as a module 2015-11-10 12:39:30 +01:00
Emiliano Bonassi
47f4396fb7 - fix source/target java version to 1.6
- add test profile for CI
2015-11-10 12:30:13 +01:00
Dave Baird
521b73b3ef Apply the singleton pattern to ApiClient
- make the api_client a singleton
- remove it from the configuration namespace
2015-11-10 09:47:58 +01:00
xhh
c07e30b8cf Update testCreateUser to avoid occasional failures 2015-11-10 13:22:06 +08:00
xhh
aaafd0632c Fix error with array of enum in Java client
ref: https://github.com/swagger-api/swagger-codegen/pull/1457#issuecomment-155185530
2015-11-10 12:04:29 +08:00
wing328
8408b97771 Merge pull request #1529 from crissdev/patch-1
[TypeScript] mark optional model properties
2015-11-10 10:35:39 +08:00
Emiliano Bonassi
3a7204d66c Add support to Retrofit2 2015-11-10 03:20:49 +01:00
Dave Baird
c6cd88b281 Merge remote-tracking branch 'upstream/master' 2015-11-09 22:05:38 +00:00
Dave Baird
c06af6d141 Documentation and automatic documentation
- added POD to Role.pm
- added README.md files translated from Role.pm POD
- added an autodoc script (based on AutoDoc.pm role). The script prints
a listing of the methods built in Role.pm
- added class_documentation() and method_documentation() accessors on
all object and API classes which return the documentation supplied in
the Swagger spec for the API
2015-11-09 23:04:59 +01:00
crissdev
d9f7944102 typescript: mark optional model properties 2015-11-09 23:20:02 +02:00
Dave Baird
49034946a0 Make class and method documentation available
Documentation from the swagger spec is available via methods
class_documentation() and method_documentation() on object and API
classes.
2015-11-09 17:04:19 +01:00
cbornet
dad28dcba0 don't retry if the access token doesn't change
This is to avoid an infinite loop if the server always gives an invalid token
2015-11-09 16:10:55 +01:00
Nadezhda Makarkina
87786f0145 ensureUniqueParams default value has been mooved from description to the defaaultValue field 2015-11-09 14:01:50 +03:00
cbornet
99c503319b use platform independant file separator 2015-11-09 11:38:26 +01:00
wing328
47a4cf4709 Merge pull request #1533 from rostskadat/springmvc_request_body_1532
Added @RequestBody annotation in order for the generated code to
2015-11-09 17:48:34 +08:00
xhh
e3c44b5af3 Improvement on comment 2015-11-09 16:47:33 +08:00
xhh
c48b93384b Merge branch 'master' into java-datetime-format 2015-11-09 15:59:32 +08:00
xhh
8cab7e785d Customizing date format in Java okhttp-gson client 2015-11-09 13:49:50 +08:00
xhh
cbc18c97ba Customizing date format in Java jersey2 client 2015-11-09 11:58:41 +08:00
xhh
a45af48e35 Fix test 2015-11-09 10:23:46 +08:00
Dave Baird
f0f43f5fdf Fix method names clash in Moose Role
When flattening all endpoint API methods into a single class, some
method names may clash, e.g. every API has a new() method. So we skip
them, they must be accessed via the API method. Warnings are emitted to
document skipped methods.
2015-11-08 21:51:26 +01:00
rostskadat
730202deb2 Added @RequestBody annotation in order for the generated code to
properly create API Model object.

@RequestBody Annotation Ref:
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestbody
2015-11-08 17:24:22 +01:00
Dave Baird
6a5f583ab0 Merge remote-tracking branch 'upstream/master' 2015-11-08 10:13:34 +00:00
wing328
4feca0d680 Merge pull request #1491 from cbornet/javax_android
Provide dependency to javax.annotation.Generated for android templates
2015-11-08 11:12:57 +08:00
Dave Baird
6c19f0c26c Flatten entire API into a single class
Added a Moose role which flattens all the individual endpoint APIs into
a single class.
2015-11-07 20:37:13 +01:00
xhh
c59be88a3e Support customizing date format in model (de)serialization in Java client
and update the default date format to conform to RFC3339
2015-11-07 15:16:13 +08:00
wing328
a5878130c4 Merge pull request #1523 from wing328/perl_update_cli
[Perl] update CLI option for perl
2015-11-07 10:51:42 +08:00
wing328
f19a8d41e4 Merge pull request #1525 from wing328/ts-reserved-word
[TypeScript] add reserved word handling for OperationId (method name)
2015-11-07 10:42:24 +08:00
Tony Tam
195359008a improved definitions, messages, fixed init params 2015-11-06 10:11:23 -08:00
Tony Tam
33df72ff5b made host+scheme configurable 2015-11-06 09:13:15 -08:00
Tony Tam
2bcb5f8fc2 Merge pull request #1524 from lugaru1234/optionsCleanup
Fixes #1516: apiPackage and modelPackage options haave been moved from DefaultCodegen
2015-11-06 08:42:42 -08:00
Tony Tam
5b80e95b96 Merge pull request #1519 from swagger-api/issue-1518
remove duplicate tags, replace with extensions in templates
2015-11-06 06:22:08 -08:00
wing328
147d8047fe update typescript sample 2015-11-06 21:49:03 +08:00
wing328
3ff060fa90 add reserved word handling for typescript 2015-11-06 21:46:47 +08:00
wing328
f7ffc7f118 update test case for perl 2015-11-06 21:24:04 +08:00
wing328
0d12f32b05 update cli option for perl 2015-11-06 21:00:04 +08:00
Nadezhda Makarkina
2f76f28dd4 apiPackage and modelPackage options haave been moved from DefaultCodegen to classes, that uses it 2015-11-06 15:44:32 +03:00
wing328
eaf985069b Merge pull request #1521 from xhh/java-readme
[Java] Add README.md to Java clients
2015-11-06 20:31:15 +08:00
xhh
8d3e555f8a Add README.md to Java clients
containing documentation like how to build and use the client
2015-11-06 17:15:32 +08:00
wing328
bd8f7a7aeb Merge pull request #1509 from xhh/ruby-collection-format
[Ruby] Support collectionFormat for header, query and form parameters
2015-11-06 17:07:48 +08:00
Tony Tam
40992c0a9b rebuilt 2015-11-05 22:31:56 -08:00
Tony Tam
be0232fa35 moved tags to extension to avoid path collisions #1518 2015-11-05 22:26:49 -08:00
wing328
471fc75381 Merge pull request #1508 from wing328/csharp_support_oauth
[C#] add oauth2 support to csharp
2015-11-06 14:06:37 +08:00
wing328
5a8d2c834f add oauth support to csharp 2015-11-06 13:56:40 +08:00
wing328
a3b90c516d Merge pull request #1507 from wing328/perl_support_ouath
[Perl] add oauth2 support for Perl
2015-11-06 11:39:15 +08:00
Tony Tam
c8ea36e188 rebuilt 2015-11-05 18:52:47 -08:00
Tony Tam
b30cbd9261 correctly set host 2015-11-05 18:52:23 -08:00
Tony Tam
c4b2f210be fixed context path 2015-11-05 18:49:11 -08:00
Tony Tam
4f2eee771d Merge branch 'master' of github.com:swagger-api/swagger-codegen 2015-11-05 18:19:29 -08:00
Tony Tam
cdd20ac408 updated swagger definitions for opts 2015-11-05 18:19:21 -08:00
wing328
f5153e6550 Merge pull request #1512 from wing328/csharp_fix_file_import
[C#] fix import for file type in model files
2015-11-06 09:34:40 +08:00
Tony Tam
b3d29bfb56 Merge pull request #1501 from lugaru1234/optionsResource
changed resource, method stub for generator options
2015-11-05 16:25:38 -08:00
wing328
44df21240f Merge pull request #1511 from boxed/master
Some spelling and grammar fixes
2015-11-05 23:06:50 +08:00
wing328
080e302c63 fix csharp import for file in model files 2015-11-05 22:47:53 +08:00
Anders Hovmöller
4a5a8b7363 Some spelling and grammar fixes 2015-11-05 15:40:05 +01:00
Nadezhda Makarkina
dcd8302f42 added @ApiModelProperty and @JsonIgnore annotations, set defailtValue to java library option 2015-11-05 17:07:40 +03:00
Nadezhda Makarkina
4eeee3b24d changed resource, method stub for generator options 2015-11-05 16:54:06 +03:00
Nadezhda Makarkina
5d8c23dd09 CliOption hah been change to allow enum values 2015-11-05 16:54:06 +03:00
Tony Tam
dadc85b6fd added resource, method stub for generator options 2015-11-05 16:54:06 +03:00
xhh
76eeb51af6 Support collectionFormat in Ruby client
for header, query and form parameters
2015-11-05 20:02:09 +08:00
wing328
b4146d3f9c Merge pull request #1479 from sfurholm/feature/add-support-for-sortParamsByRequiredFlag-config-option-to-csharp-and-python
Added support for sortParamsByRequiredFlag config option to C# and Python
2015-11-05 18:55:55 +08:00
wing328
51d9e92a00 add homebrew 2015-11-05 17:12:51 +08:00
wing328
4bfc032a64 add oauth2 support for Perl 2015-11-05 16:32:46 +08:00
wing328
30a4be833b Merge pull request #1502 from dvz5/master
Rebuild perl petstore client after previous updates
2015-11-05 11:59:11 +08:00
wing328
cd733e562e Merge pull request #1506 from xhh/unique-param-name
Make parameters unique in generated code
2015-11-05 11:40:38 +08:00
xhh
9863b631f7 Fix comment to conform to javadoc guideline 2015-11-05 11:23:15 +08:00
Dave Baird
107452d406 Merge remote-tracking branch 'upstream/master' 2015-11-04 22:00:13 +00:00
Dave Baird
baf20ca226 Fix errors from using wrong JSON spec
I've been using http://petstore.swagger.io/v2/swagger.json instead of
modules/swagger-codegen/src/test/resources/2_0/petstore.json as the
input spec for building the petstore. This commit reverts the changes
introduced from that.
2015-11-04 22:24:49 +01:00
Dave Baird
f521680c0f Moved object classes' constructor into base class 2015-11-04 21:42:27 +01:00
Dave Baird
4264b74e40 Minor tidying up
Some documentation, fix a warning, added a couple of logger calls.
2015-11-04 20:27:23 +01:00
wing328
3b77b6ab39 fix link in toc
fix link in toc (Generating a client from local files)
2015-11-04 22:35:29 +08:00
wing328
449fa3a0f5 add guidelines for contriubtion 2015-11-04 22:32:06 +08:00
xhh
5a7bb600d6 Set the ensureUniqueParams option to true by default 2015-11-04 21:28:52 +08:00
xhh
e9ba5ed57c Fix tests 2015-11-04 21:20:16 +08:00
xhh
1a67f452e2 Make parameters unique in generated code
through a config option "ensureUniqueParams" which is false by default

Closes #1422
2015-11-04 20:51:56 +08:00
wing328
76cee8bc6b Merge pull request #1423 from rbhunt/issue-1391
Fix for #1391
2015-11-04 16:12:54 +08:00
wing328
40bd4415f9 Merge pull request #1497 from aersamkull/master
Aligns the two typescript generators
2015-11-04 15:54:13 +08:00
wing328
12b872cd14 Merge pull request #1498 from xhh/ruby-deserialize-additional-properties
Ruby: support map/hash in model deserialization with additionalProperties
2015-11-04 15:13:12 +08:00
wing328
8fa06a1878 Merge pull request #1496 from wing328/python_improvement1
[Python] Add OAuth support
2015-11-04 14:33:47 +08:00
xhh
7813976d9b Minor changes 2015-11-04 10:26:14 +08:00
xhh
18abc56688 Add tests for array and map property deserialization 2015-11-04 10:23:21 +08:00
Dave Baird
a93eb8aeaa Merge remote-tracking branch 'upstream/master' 2015-11-03 20:39:09 +00:00
Tony Tam
7ac91ced2e updated parser version 2015-11-03 09:13:29 -08:00
Dave Baird
37b123530f Add ApiFactory class and proper accessors on object classes
ApiFactory provides a get_api() method to generate API objects without
having to hard-code class names. All API and object classes are loaded
automatically.

Also, added proper accessors for attributes of object classes.
2015-11-03 17:58:53 +01:00
Dave Baird
8428e7963b Rebuild perl petstore client after previous updates
At least 2 previous updates were committed without rebuilding the perl
petstore client. One was my fault (BaseObject.pm changes), the other
changes come from an upstream update or updates  I can't identify.
2015-11-03 16:46:47 +01:00
wing328
1b538f6eaf Merge pull request #1471 from wing328/invalid_array_type
Better error handling for invalid array/map type
2015-11-03 21:46:24 +08:00
wing328
c8ce84f650 replace tab with space, update samples 2015-11-03 21:34:44 +08:00
wing328
42e10fbb14 better error handling for invalid array/map type 2015-11-03 21:33:06 +08:00
wing328
5bf4d022cf Merge pull request #1490 from xhh/java-oauth
Add oauth support for Java client
2015-11-03 20:34:12 +08:00
xhh
abe44df1ec Ruby: support map/hash in model deserialization with additionalProperties
For example, the "scoreMap" and "cateMap" properties below:

  "definitions": {
    "User": {
      "properties": {
        "scoreMap": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int32",
          }
        },
        "cateMap": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/Category"
          }
        }
      }
    }
  }
2015-11-03 16:39:54 +08:00
aersamkull
5580eb7ac3 Aligns the two typescript generators 2015-11-03 09:03:52 +01:00
wing328
792726ddc5 update sample, better handle of $ in naming 2015-11-03 10:29:28 +08:00
wing328
eebb6c4dd0 rename auth token to access token 2015-11-03 10:17:47 +08:00
wing328
89ec500744 add oauth support in python 2015-11-03 10:14:20 +08:00
wing328
2778857714 Merge pull request #1409 from sfurholm/feature/allow-overriding-of-only-some-templates-v2
Allow overriding of only some templates when using --template-dir option
2015-11-03 09:33:16 +08:00
wing328
86efdc5b54 Merge pull request #1485 from xhh/ruby-oauth
Add oauth support for Ruby client
2015-11-03 09:13:53 +08:00
wing328
cb429149bc Merge pull request #1492 from tomekc/swift_custom_headers
Custom headers in Swift; base URL is now modifyable
2015-11-03 09:05:30 +08:00
wing328
6b857d7acc Merge pull request #1395 from cbornet/retrofit_improvements
[Retrofit]Add a listener on new token reception
2015-11-03 09:03:58 +08:00
cbornet
8b0bf8ff72 add a listener on new token reception
Add a listener on new token reception that can then be stored or logged for debug
Add an helper method to add authorizations (otherwise if the swagger def is not complete or correct, it is hard to configure from the main app)
2015-11-02 19:20:24 +01:00
cbornet
5b1f287176 add android manifest to java codegen 2015-11-02 18:32:52 +01:00
cbornet
645b8a01e1 provide dependency to javax.annotation.Generated for android 2015-11-02 16:16:14 +01:00
xhh
a94f9b69af Add oauth support to other Java clients
with libraries jersey2 and okhttp-gson
2015-11-02 22:52:51 +08:00
wing328
1f38ce724f Merge pull request #1486 from aersamkull/master
Addes default headers for TypeScript Angular
2015-11-02 21:36:46 +08:00
wing328
9f7427b1cf Merge pull request #1489 from dvz5/master
Fix array query param processing
2015-11-02 21:36:25 +08:00
xhh
b27931cd8c Add oauth support for Java client 2015-11-02 21:27:53 +08:00
Tomek Cejner
884b853e1f Custom headers in Swift; base URL is nor modifyable 2015-11-02 14:20:15 +01:00
Dave Baird
3559a8bd09 Fix array query param processing
A couple of PHP functions that don't exist in Perl were being called to
process array query parameters.
2015-11-02 10:47:46 +01:00
aersamkull
3762ea472d Adds default headers 2015-11-02 08:28:46 +01:00
Dave Baird
d28737ffd2 Fix misleading comment 2015-11-02 08:24:06 +01:00
aersamkull
a4538e989c Merge branch 'master' of https://github.com/swagger-api/swagger-codegen 2015-11-02 07:45:01 +01:00
xhh
1c3dc28c67 Add oauth support for Ruby client 2015-11-02 12:50:23 +08:00
wing328
742508281a Merge pull request #1484 from dvz5/patch-1
Tests for deserialization
2015-11-02 10:03:11 +08:00
dvz5
08f424824c Update 02_store_api.t 2015-11-01 23:14:22 +01:00
dvz5
2e03ecc4b8 Update 01_pet_api.t
Add tests for photoUrls, to check correct mapping from object attribute name to JSON attribute name.
2015-11-01 23:10:20 +01:00
wing328
15c5fff3d8 Merge pull request #1481 from dvz5/patch-1
Update BaseObject.mustache
2015-11-01 22:40:15 +08:00
wing328
c3a98c2fb1 add online generators 2015-11-01 00:02:08 +08:00
Tony Tam
d64ed9088a Merge pull request #1483 from jacobrask/patch-1
Fix path typo in readme
2015-10-31 08:49:10 -07:00
Jacob Rask
48bf89cb1d Fix path typo in readme 2015-10-31 16:35:14 +01:00
wing328
ad590793e7 Update server generator 2015-10-31 23:17:58 +08:00
wing328
47b4f9fa2c Merge pull request #1477 from baverbud/issue-1476
Issue 1476
2015-10-31 23:04:56 +08:00
wing328
7bc523324d Merge pull request #1446 from wing328/php_improvement1
[PHP] add OAuth support
2015-10-31 22:46:52 +08:00
dvz5
a4426cf2de Update BaseObject.mustache
Fix deserialization.
2015-10-31 09:01:40 +01:00
Steffen Furholm
dcaa2dcb22 Merge branch 'master' of github.com:swagger-api/swagger-codegen into feature/add-support-for-sortParamsByRequiredFlag-config-option-to-csharp-and-python 2015-10-31 02:20:36 +01:00
Tony Tam
9fc5fdbc8d Merge pull request #1474 from lugaru1234/genratorOptionsPart2
Test data were moved to the separete classes and OnlineGeneratorOptionsTest has been refactored
2015-10-30 18:10:17 -07:00
Steffen Furholm
5da0b96f17 Added support for sortParamsByRequiredFlag config option to C# and Python 2015-10-31 01:14:17 +01:00
Richard Baverstock
97a28165c7 Additional locations where float/double handling is needed 2015-10-30 11:48:48 -07:00
Richard Baverstock
8565975b99 Issue 1461
Add float and double handling to functions in SWGHelpers.cpp
2015-10-30 11:44:55 -07:00
wing328
28069fa1b4 Merge pull request #1472 from thorsten/master
Added missing visibility for constructor
2015-10-30 23:14:55 +08:00
wing328
eb598b641c Merge pull request #1473 from dvz5/patch-1
Update BaseObject.mustache
2015-10-30 23:07:38 +08:00
Nadezhda Makarkina
81090bb4e2 Test data were moved to the separete classes and OnlineGeneratorOptionsTest has been refactored 2015-10-30 16:32:33 +03:00
dvz5
afcf90798a Update BaseObject.mustache
Fix deserialization
2015-10-30 14:32:10 +01:00
Thorsten Rinne
f23370774b Added missing visibility for constructor 2015-10-30 11:10:38 +01:00
wing328
b7481586c3 Merge pull request #1405 from lugaru1234/returnTypeFix
ReturnType processing has been fixed
2015-10-30 12:21:05 +08:00
wing328
df72beada6 Merge pull request #1463 from xhh/jersey2-client
Java jersey2: reuse a shared Client instance
2015-10-30 09:56:15 +08:00
Tony Tam
3d3fda9c79 Merge pull request #1468 from baverbud/issue-1461
Issue #1461
2015-10-29 14:39:41 -07:00
Richard Baverstock
4438c63f6b Issue #1461
Add float and double to languageSpecificPrimitives
2015-10-29 10:50:07 -07:00
Tony Tam
837ffc8947 Merge pull request #1466 from lugaru1234/optionsTestPart3
processOptions tests have been added for the rest of languages
2015-10-29 06:34:40 -07:00
Nadezhda Makarkina
faf79be477 processOptions tests have been added for Objc, perl, spring-mvc, swift, scala, async-scala, qt5cpp, html, dynamic-html, swagger, swagger-yaml, tizen, typescript-angular, typescript-node, akka-scala, inflector, scalatra, silex and sinatra 2015-10-29 15:46:01 +03:00
aersamkull
2b24aa8f91 adds default headers 2015-10-29 09:15:18 +01:00
wing328
4ed819c4a0 Merge pull request #1457 from xhh/java-default-value
[Java] Assign default value for primitive properties
2015-10-29 10:11:05 +08:00
xhh
953edc940f Java jersey2: use a shared Client instance 2015-10-29 09:40:07 +08:00
Steffen Furholm
c0dc273e7a Merge remote-tracking branch 'origin/master' into feature/allow-overriding-of-only-some-templates-v2 2015-10-28 23:30:19 +01:00
Tony Tam
29ea8d5501 Merge pull request #1459 from lugaru1234/optionsTestPart2
processOptions tests have been added for Android, Ruby, nodeJS, php, python, csharp, CsharpDotNet2, dart, flash
2015-10-28 07:22:38 -07:00
wing328
6c12e5ac8b update php sample 2015-10-28 21:45:22 +08:00
wing328
964850a8de rename authToken to accessToken 2015-10-28 21:44:12 +08:00
wing328
67815ed5f2 add oauth support for php 2015-10-28 21:44:12 +08:00
Nadezhda Makarkina
6008664ff8 processOptions tests have been added for Android, Ruby, nodeJS, php, python, csharp, CsharpDotNet2, dart, flash 2015-10-28 14:55:42 +03:00
Andras Gaal
a5fcda9926 fix: codegen does not support spec 2.0 properties for parameters:
maximum
,exclusiveMaximum
,minimum
,exclusiveMinimum
,maxLength
,minLength
,pattern
,maxItems
,minItems
,uniqueItems
,multipleOf
2015-10-28 10:52:29 +01:00
xhh
ef29f70508 Handle default value for Integer, Double and Float properties 2015-10-28 16:37:31 +08:00
wing328
2e6199ac3b Merge pull request #1456 from wing328/master
[C#] update C# petstore sample code
2015-10-28 16:08:49 +08:00
wing328
55d69d80bc update c# sample code 2015-10-28 15:33:56 +08:00
xhh
2595992df7 Assign default value for model properties
in Java-related client and server codegen.

Closes #1448
2015-10-28 15:26:16 +08:00
wing328
55f1b0f642 Merge pull request #1450 from paralin/fix-path-var
Change usage of "path" in C# code generation
2015-10-28 15:21:01 +08:00
wing328
bd67cda1a7 Merge pull request #1451 from arnested/CURLFile-object
Use CURLFile object on PHP5.5+
2015-10-28 14:33:49 +08:00
Arne Jørgensen
47b2ae934b Regenerated PHP petstore sample. 2015-10-27 22:58:25 +01:00
Arne Jørgensen
d907822fa9 Use CURLFile object on PHP5.5+. 2015-10-27 22:56:19 +01:00
Christian Stewart
5cdee3f424 Path is a commonly used variable name 2015-10-27 17:35:21 -04:00
Tony Tam
09c5aa3827 Merge pull request #1447 from lugaru1234/optionsTest
Options tests have been added for Java and JaxRS
2015-10-27 10:32:25 -07:00
Nadezhda Makarkina
9e791c229b processOptions tests have been added for Java and JaxRS 2015-10-27 15:51:39 +03:00
wing328
4551076b22 Merge pull request #1438 from wing328/better_doc
Better documentation for DefaultCodegen.java
2015-10-27 15:53:17 +08:00
wing328
cf59b5dc7e Merge pull request #1444 from xhh/retrofit-syntex-error
Fix syntax error on authMethods in java retrofit client
2015-10-27 13:56:53 +08:00
wing328
28521b34f2 Merge pull request #1439 from wing328/fix_jaxrs_path
[JAXRS] fix Jax-RS path with basePath
2015-10-27 11:57:55 +08:00
xhh
fa3661ff5d Merge branch 'master' into retrofit-syntex-error 2015-10-27 11:32:29 +08:00
xhh
33358d44a9 Simplify tags in mustache 2015-10-27 11:08:37 +08:00
wing328
dd8ae250b2 Merge pull request #1433 from iushankin/allowableValues-fix
Fix for allowable values in the Mustache template
2015-10-27 11:04:42 +08:00
xhh
95113dbe22 Fix syntax error on authMethods in java retrofit client 2015-10-27 10:45:23 +08:00
xhh
f1e3809279 Fix partial template reading 2015-10-27 01:12:57 +01:00
Tony Tam
8914a30935 Merge pull request #1434 from lugaru1234/generatorOptions
Options processing has been fixed
2015-10-26 08:46:21 -07:00
wing328
5964f7b841 Merge pull request #1414 from dgreenbean/feature/csharp_binary_files
Raw Binary for File Output
2015-10-26 23:35:52 +08:00
wing328
cc7105b5d8 fix jarxs path with basepath 2015-10-26 18:00:15 +08:00
wing328
6792aea7f8 better comment for default codegen 2015-10-26 16:12:05 +08:00
Nadezhda Makarkina
c298b7d152 ReturnType processing has been fixed 2015-10-26 10:37:36 +03:00
Tony Tam
6b7ceab081 updated to dev version 2015-10-25 20:59:52 -07:00
Tony Tam
c00f4ba805 Merge pull request #1437 from swagger-api/release-prepare
updated versions for release
2015-10-25 19:41:11 -07:00
Tony Tam
dd3b253e15 updated versions 2015-10-25 19:31:36 -07:00
Tony Tam
3969a9f294 fix for #925 2015-10-25 17:02:08 -07:00
Tony Tam
78f8eaa687 set to release version 2015-10-25 16:31:40 -07:00
wing328
fe676c83c0 Merge pull request #1412 from Edubits/swift-alamofire-3.0
Swift Alamofire 3.0
2015-10-25 18:28:39 +08:00
wing328
18370b9076 Merge pull request #1402 from lugaru1234/issue960
Fixes #960: Enums have been added to result file
2015-10-25 17:52:37 +08:00
wing328
70d987666e Merge pull request #1436 from tomekc/swift_enum_naming
Swift enum names capitalization follows Swift convention.
2015-10-25 17:46:14 +08:00
Tomek Cejner
6247dd0cde Swift enum names capitalization follows Swift convention. 2015-10-25 00:06:00 +02:00
Testo Nakada
f76a789a49 - make Meta generator take the swagger code gen version
- generate the class name correctly if the name contains hyphen
2015-10-24 11:36:00 -07:00
wing328
ea7ef990b9 Merge pull request #1432 from xhh/ruby-empty-array
Ruby client: include empty arrays in model serialization
2015-10-24 11:45:27 +08:00
Tony Tam
83afaffd92 Merge pull request #1430 from nbruno/java-child-enum-bug
Ensure hasMore is updated when reconciling enum properties from parent
2015-10-23 08:08:30 -07:00
Nadezhda Makarkina
c957641079 Options processing has been fixed 2015-10-23 17:59:40 +03:00
Ivan Ushankin
c6946a36c4 Fix for allowable values in the Mustache template 2015-10-23 15:49:51 +03:00
wing328
d2faa63ebc Merge pull request #1431 from wing328/fix_empty_operation_id
Better error message for empty operationId
2015-10-23 18:47:04 +08:00
xhh
dcec2e7b5d Forgot to use _to_hash for non-array value 2015-10-23 18:03:38 +08:00
xhh
940e76f45f Ruby client: include empty arrays in model serialization 2015-10-23 17:08:12 +08:00
wing328
fecbc3c45d Merge pull request #1306 from fdorothy/master
Specifying configuration files from Codegen class
2015-10-23 15:41:00 +08:00
Tony Tam
a6e4203cd5 added property check 2015-10-22 22:39:09 -07:00
wing328
dd34d75f00 better error message for empty operationId 2015-10-23 12:46:44 +08:00
Nick Bruno
1eed1917b9 Ensure hasMore is updated when reconciling enum properties from parent 2015-10-22 22:33:20 -04:00
Tony Tam
91afec43a6 fixed NPE on empty props 2015-10-22 15:43:02 -07:00
Tony Tam
adeff7855c instructions for selective generation 2015-10-22 15:34:20 -07:00
Tony Tam
e289b858a9 Merge pull request #1428 from swagger-api/feature/selective-generation
made selective generation of models
2015-10-22 15:28:58 -07:00
Tony Tam
7170f7fa01 updated supporitng file support 2015-10-22 15:28:49 -07:00
Tony Tam
6253a592d9 added optional support for apis, supoprtingFiles 2015-10-22 14:54:29 -07:00
Tony Tam
9f842a1295 added environment variable support 2015-10-22 14:34:52 -07:00
Tony Tam
723cf9b823 made selective generation of models 2015-10-22 14:03:44 -07:00
Tony Tam
bbb59f93db Merge pull request #1427 from crissdev/patch-1
Update TypeScriptAngularClientCodegen.java
2015-10-22 14:00:27 -07:00
Cristian Trifan
2fcb705826 Update TypeScriptAngularClientCodegen.java
Fix minor typo
2015-10-22 23:19:46 +03:00
David Greenberg
390ddc9ef3 Changing Stream deserialization to use raw bytes from response, rather than UTF-8 decoded text. 2015-10-22 09:04:54 -04:00
wing328
4723f51c63 Merge pull request #1397 from lugaru1234/issue1251
Fixes #1251, #1212: Form parameters has been added to the html template
2015-10-22 16:48:13 +08:00
wing328
485186e6b6 Merge pull request #1418 from ampem/master
[Perl] Ensure parameters to "each" is a hash in TO_JSON and from_hash
2015-10-22 15:14:27 +08:00
Richard Hunt
f44eb766b4 Replace File.separator with '/' to fix Windows path generation and avoid regular expression issues 2015-10-22 15:54:28 +13:00
Ampem Darko
1ac6842b5a Update mustache template to pass hashes in TO_JSON and from_hash 2015-10-21 16:15:42 +00:00
Ampem Darko
57e3ea3e9c Ensure parameters to "each" is a hash in TO_JSON and from_hash 2015-10-21 13:35:48 +00:00
wing328
0f75b053c8 Merge pull request #1417 from akkie/master
ApiException doesn't use deserialized data
2015-10-21 19:13:18 +08:00
wing328
eee69f1e05 Merge pull request #1416 from xhh/java-do-not-serialize-nulls
[Java] Ignore null fields in model serialization in Java clients
2015-10-21 19:00:09 +08:00
akkie
9b8a633435 ApiException doesn't use deserialized data
This is a fix for #1394. I had not merged the data correctly after the rebase
2015-10-21 12:56:15 +02:00
Tony Tam
dcc47a92b5 added https support 2015-10-20 21:25:51 -07:00
Tony Tam
e9aaa6da36 enabled https 2015-10-20 21:25:35 -07:00
Tony Tam
568a7be994 enabled https 2015-10-20 21:25:21 -07:00
xhh
214e0186e8 Ignore null fields in model serialization
in Java clients.

Closes #1413
2015-10-21 12:05:27 +08:00
Tony Tam
7f5cdba606 rebuilt 2015-10-20 11:42:40 -07:00
Tony Tam
295af57c9a fixed build error 2015-10-20 11:31:21 -07:00
Tony Tam
bade71c6ba merged 2015-10-20 10:59:20 -07:00
Tony Tam
9adb077a7b Merge branch 'feature/inline-models' 2015-10-20 10:57:50 -07:00
Tony Tam
10a9c62e2b merged 2015-10-20 10:57:36 -07:00
Tony Tam
a6bd0773f7 added files 2015-10-20 10:56:18 -07:00
Tony Tam
b2506ab598 rebuilt 2015-10-20 10:32:19 -07:00
Tony Tam
a21f08118e rebuilt 2015-10-20 10:31:42 -07:00
Tony Tam
96380bbc83 rebuilt 2015-10-20 10:31:17 -07:00
Tony Tam
abe4980449 rebuilt 2015-10-20 10:30:19 -07:00
Tony Tam
e3151c57a0 rebuilt 2015-10-20 10:29:48 -07:00
Tony Tam
d2dc333699 rebuilt 2015-10-20 10:29:25 -07:00
Tony Tam
b41a40f9be rebuilt 2015-10-20 10:28:49 -07:00
Tony Tam
2f3a2413c7 rebuilt 2015-10-20 08:49:26 -07:00
Tony Tam
19ea3ecf66 update test for inline body param flattening 2015-10-20 08:48:44 -07:00
Tony Tam
5c29562926 ensure body params are flattened when type ModelImpl 2015-10-20 08:48:26 -07:00
Tony Tam
b827d06077 fix for npe on map models 2015-10-20 08:48:04 -07:00
Tony Tam
539496d735 rebuilt 2015-10-20 07:10:05 -07:00
wing328
6b7059d23f Merge pull request #1394 from akkie/api-exception-json
Deserialize the response body in case of an ApiException
2015-10-20 18:01:09 +08:00
wing328
bff8f96b99 Merge pull request #1404 from tomekc/swift-enhanced
Add default initializer to Swift model classes.
2015-10-20 17:54:41 +08:00
Tony Tam
5e69d929a0 rebuilt 2015-10-19 23:13:27 -07:00
Tony Tam
e1ee7065d5 rebuilt client 2015-10-19 23:12:02 -07:00
Tony Tam
aaf1df1971 more flattening fixes 2015-10-19 23:10:48 -07:00
Tony Tam
555fd54fbb updated swagger-core versions 2015-10-19 22:09:33 -07:00
Tony Tam
905a7746e7 updated test 2015-10-19 21:45:47 -07:00
Tony Tam
eeaf4071f9 updated to not flatten array, map properties in responses unless necessary 2015-10-19 21:35:45 -07:00
Tony Tam
84b7302f12 updated swagger-core version 2015-10-19 21:34:42 -07:00
Robin Eggenkamp
1b0963ebe0 Minimal changes to upgrade to Alamofire 3.0.0 2015-10-19 17:06:41 +02:00
akkie
b054cd3cc6 Deserialize the response body in case of an ApiException
Currently it's not possible to use custom models in the ApiException because the body gets not deserialized to Json and therefore the object deserializer cannot deserialize it to a custom model. This pull request uses the same mechanism as used to deserialize the response body in case of a 2xx status code.
2015-10-19 15:17:29 +02:00
wing328
4ea797d0e8 Merge pull request #1392 from nbruno/add-auth-annotations-jaxrs
Add authorization scope data to CodegenSecurity
2015-10-19 14:15:05 +08:00
Tony Tam
002feb3e7c build error 2015-10-18 21:10:13 -07:00
Tony Tam
89dc4d29ab added map support 2015-10-18 21:05:57 -07:00
Tony Tam
3cf1f1a56a added support for array and model inline types 2015-10-18 20:51:55 -07:00
Nick Bruno
b83db8e535 Merge remote-tracking branch 'upstream/master' into add-auth-annotations-jaxrs 2015-10-18 17:19:44 -04:00
wing328
eb1e0b5034 Merge pull request #1408 from kkrauth/patch-1
Fix syntax issue when no auth methods defined
2015-10-18 16:34:11 +08:00
wing328
d7b4f58994 Merge pull request #1411 from wing328/master
Add support for top-level consumes and produces
2015-10-17 17:41:19 +08:00
wing328
e8fbdaabe3 replace tabs with spaces 2015-10-17 16:44:55 +08:00
wing328
b82333aea4 Add support for top-level consumes and produces
This reverts commit 0b4b5e8839.
2015-10-17 16:30:19 +08:00
Nick Bruno
7bbb883a00 Generate JAXRS and SpringMVC samples to demo Authorization annotations 2015-10-16 21:25:54 -04:00
Nick Bruno
6477a27579 Update SpringMVC template to include Authorization annotations 2015-10-16 21:24:17 -04:00
Tony Tam
ad1626ad2d added yaml sample 2015-10-16 18:22:13 -07:00
Tony Tam
bfa4303e6e added inline model resolver 2015-10-16 18:21:34 -07:00
Tony Tam
9508579eed added inline resolver 2015-10-16 18:21:06 -07:00
Steffen Furholm
8bc4c1f05e Allow overriding of only some templates when using --template-dir option. Templates which aren't found in the template directory will fall back to the ones packaged/distributed with Swagger 2015-10-16 23:29:08 +02:00
Kosta Krauth
9ac980298f Fix syntax issue when no auth methods defined
When no authentication methods are defined, the generated code does not compile due to where the authMethods closing tag is located. Moved the closing tag further down and opening tag further up so that the generated code is correct both when authentication are and aren't present.
2015-10-16 16:45:34 -04:00
wing328
a2fda604f8 Merge pull request #1396 from akkie/disable-ssl-verification
Allow to disable SSL verification
2015-10-16 21:08:31 +08:00
Tomek Cejner
8339e4b092 Add default initializer to Swift model classes. 2015-10-16 14:09:55 +02:00
wing328
90eab19305 Merge pull request #1401 from xhh/ruby-base-url-slashes
Ruby client: remove trailing slashes from base_url
2015-10-16 19:32:13 +08:00
wing328
8a2c34ba7a Merge pull request #1403 from cbornet/retrofit_useless_import
Remove useless import
2015-10-16 19:12:35 +08:00
wing328
8c5991b793 Merge pull request #1372 from cbornet/retrofit_collectionformat
Add colllectionFormat support to retrofit
2015-10-16 18:50:59 +08:00
cbornet
3debd08a32 remove useless import 2015-10-16 12:47:25 +02:00
cbornet
92d1e8a1d9 use StringUtil to format csv 2015-10-16 12:21:45 +02:00
cbornet
71c5160739 add colllectionFormat support to retrofit
Fix #1364
2015-10-16 12:21:45 +02:00
Nadezhda Makarkina
3dd0b04fb9 Enums have been added to result file 2015-10-16 11:53:05 +03:00
Nadezhda Makarkina
04369ddfce Form parameters has been added to the html template 2015-10-16 10:33:56 +03:00
wing328
084e7f7199 Merge pull request #1380 from xhh/java-global-security
Apply global security to operations when necessary
2015-10-16 12:50:41 +08:00
wing328
ab026fdde3 Merge pull request #1393 from gwen15/genfix
REST client code generation bug fix proposal
2015-10-16 12:42:32 +08:00
xhh
e0dfc1b43d Ruby client: remove trailing slashes from base_url
Closes #1399
2015-10-16 12:02:30 +08:00
wing328
d5e2aea723 Merge pull request #1375 from xhh/issue-1308
Remove duplicate fields from sub-classes of the Java codegen
2015-10-16 12:02:25 +08:00
wing328
d2df310290 Merge pull request #1400 from testn/add-library
add library in the additional option
2015-10-16 12:00:28 +08:00
Nat Luengnaruemitchai
7db67aa192 add library in the additional option 2015-10-15 20:44:27 -07:00
xhh
a1fa0b0834 Rebuild Petstore samples 2015-10-16 10:47:00 +08:00
xhh
02a9fe2618 Add more test cases for global security 2015-10-16 10:30:26 +08:00
akkie
97a5a8922f Allow to disable SSL verification
This pull request adds the possibility to disable SSL verification for hosts using a self-signed SSL certificate
2015-10-15 16:07:35 +02:00
gwen15
0802f94d94 Bug fix: some character replacement where done on the local directories
names.

The dot character was replaced by the file separator on the whole paths,
not only on the package name based part.
2015-10-15 12:35:23 +02:00
gwen15
21eb406140 Fix default long value in java client code generation
The generated java code for a Long was "Long id=1;" which is not
compilable by javac because "1" is a primitive integer that cannot be
cast to a Long object. This fix generates now "Long id=1l;".
2015-10-15 12:35:16 +02:00
xhh
84928abd8d Merge branch 'master' into java-global-security 2015-10-15 17:57:27 +08:00
xhh
1c21730607 Log a warning on more than 1 security requirements 2015-10-15 17:56:38 +08:00
xhh
5a76a1b155 Fix tests regarding security 2015-10-15 16:51:43 +08:00
xhh
bc5a610567 Use the first security requirement from the array
According to swagger spec, "there is a logical OR between the security
requirements". The original behavior was to apply the security
requirements as the logic AND and skip security requirements that
include more that 1 security.
2015-10-15 15:17:30 +08:00
wing328
860b551e9b Merge pull request #1376 from xhh/java-util-model-package
[Java] Add a config option to use fully qualified name for java.util classes
2015-10-15 12:12:37 +08:00
wing328
22218cb132 Merge pull request #1378 from xhh/java-invalid-enum-name
[Java] Handle enum names starting with number in Java client
2015-10-15 10:51:03 +08:00
Nick Bruno
300a0dc82c Update retrofit library for changes to OAuth scope handling 2015-10-14 22:50:58 -04:00
wing328
3a66c0c710 Merge pull request #1384 from cbornet/retrofit_test_sample
Add retrofit to CI verified samples
2015-10-15 10:42:40 +08:00
xhh
a94384ca7f Merge branch 'master' into java-util-model-package 2015-10-15 10:38:19 +08:00
xhh
6d50ce6a77 Fix a typo 2015-10-15 10:34:45 +08:00
wing328
583493f5ca Merge pull request #1377 from cbornet/java_gradle_android
Add gradle files with android support to java templates
2015-10-15 10:28:28 +08:00
Nick Bruno
6cc17d8508 Add authorization scope data to CodegenSecurity, demo use in JAXRS 2015-10-14 22:07:43 -04:00
wing328
265b4b5945 Merge pull request #1385 from aersamkull/master
Updates to TypeScript Templates 2
2015-10-15 09:46:46 +08:00
xhh
65e63a8c52 Merge remote-tracking branch 'origin/master' into java-global-security 2015-10-14 20:42:20 +08:00
xhh
e4e77d03f5 Add test cases for global security 2015-10-14 20:40:10 +08:00
wing328
638bbfaf43 Merge pull request #1386 from swagger-api/revert-1370-global_consume
Revert "Add support for top-level consumes and produces"
2015-10-13 23:56:57 +08:00
wing328
0b4b5e8839 Revert "Add support for top-level consumes and produces" 2015-10-13 23:47:42 +08:00
wing328
c7b08bc112 Merge pull request #1373 from estiller/master
Fix bug in handling 204 "No Content" responses from the server in Android & Java generated clients
2015-10-13 22:47:47 +08:00
wing328
f1b0cf839a Merge pull request #1370 from wing328/global_consume
Add support for top-level consumes and produces
2015-10-13 22:35:33 +08:00
aersamkull
988de07c17 Fixes noImplicitAny Error 2015-10-13 13:32:01 +02:00
cbornet
f603efc419 add retrofit to CI verified samples 2015-10-13 12:18:32 +02:00
aersamkull
4e7d893a8e Updates to TypeScript Templates 2015-10-13 12:01:34 +02:00
xhh
1ef51e5ad7 Apply global security to operations when necessary
Closes #1365
2015-10-13 16:22:02 +08:00
xhh
17545e959a Handle enum names starting with number in Java client 2015-10-13 10:32:07 +08:00
cbornet
5ed52b3e1d add gradle files with android support 2015-10-12 16:16:38 +02:00
wing328
6ce09ee779 Update config option 2015-10-12 17:34:07 +08:00
xhh
7b1799f874 Merge branch 'master' into java-util-model-package
Conflicts:
	samples/client/petstore/java/default/src/main/java/io/swagger/client/api/PetApi.java
	samples/client/petstore/java/default/src/main/java/io/swagger/client/api/StoreApi.java
	samples/client/petstore/java/default/src/main/java/io/swagger/client/api/UserApi.java
	samples/client/petstore/java/default/src/main/java/io/swagger/client/model/Order.java
	samples/client/petstore/java/default/src/main/java/io/swagger/client/model/Pet.java
2015-10-12 17:11:43 +08:00
xhh
43b3acf550 Remove duplicate fields from sub-classes of the Java codegen
Closes #1308
2015-10-12 17:07:17 +08:00
wing328
d162d48fa3 Merge pull request #1359 from wing328/better_exception_handling2
Better exception handling
2015-10-12 16:58:01 +08:00
Eran Stiller
e562b0ae34 Fix indentation 2015-10-12 09:52:20 +03:00
Eran Stiller
748460488a Regenerate only the ApiInvoker.java file in the sample 2015-10-12 09:25:24 +03:00
Eran Stiller
1fb2a97497 Revert "Regenerate Android-Java sample"
This reverts commit 15f5eae2a8.
2015-10-12 09:22:36 +03:00
Eran Stiller
15f5eae2a8 Regenerate Android-Java sample 2015-10-12 08:52:52 +03:00
Eran Stiller
6fd54d5285 Fix bug in handling 204 responses 2015-10-12 08:51:00 +03:00
wing328
00517a1ad3 remove unused operation in test json file 2015-10-10 23:27:21 +08:00
wing328
5cd01af350 fix typo in test cases 2015-10-10 23:22:42 +08:00
wing328
9ecb2e92ae restore sample files for objc, php and ruby 2015-10-10 23:13:26 +08:00
wing328
6cc5a32d40 update objc sample 2015-10-10 23:09:41 +08:00
wing328
64fd94262f add globalConsumesAndProduces.json 2015-10-10 22:54:13 +08:00
wing328
5144c54895 add test case for global consumes and produces 2015-10-10 22:47:24 +08:00
wing328
9311dcaccb update codegen to support global consumes and produces 2015-10-10 18:39:54 +08:00
Tony Tam
a5a6ae72c3 Merge pull request #1368 from ducin/badge-maven-central
maven central badge added
2015-10-09 09:38:50 -07:00
Tomasz Ducin
c31ed5a30d maven central badge added 2015-10-09 18:14:27 +02:00
xhh
aa0fbada07 Add a "fullJavaUtil" option to Java clients
to toggle whether to use full qualified name (with full package prefix)
for classes under java.util
2015-10-09 22:10:22 +08:00
xhh
ab34dc5697 Rebuild Java cilents of the Petstore sample 2015-10-09 22:10:21 +08:00
xhh
edf2642e73 Support model name like "List" in Java clients
Support generating model files with name like "List", "Map" and "Date"
by using full qualified names when using them from the java.util
package.
2015-10-09 22:10:21 +08:00
wing328
d95660aca1 Merge pull request #1340 from onnertech/ios-tweaks
[objc] Add casts that avoid method resolution errors for `count`
2015-10-09 16:44:54 +08:00
wing328
297f9e961c Merge pull request #1362 from cristiangarciascmspain/fix-OSX-Pom-TestNG
Add StartAttachListener that fixes #1330
2015-10-09 15:34:15 +08:00
wing328
42b716207f Merge pull request #1360 from wing328/nodejs_server_port
[NodeJS] update index.js to use the var serverPort
2015-10-09 11:32:01 +08:00
wing328
7d69107696 Merge pull request #1356 from arnested/deserialize-httpHeader
Deserialize httpHeader.
2015-10-09 11:31:24 +08:00
wing328
4d2fb1cc9a Merge pull request #1355 from arnested/usage-of-httpHeader-in-exceptions
Use HTTP headers from ApiException in PHP client.
2015-10-09 11:31:15 +08:00
cristiangarciascmspain
503ffd06d0 Add StartAttachListener that fixes #1330 2015-10-08 18:30:13 +02:00
wing328
725df15dd5 update sample for nodejs 2015-10-08 23:57:14 +08:00
wing328
8e9e3a6171 update nodejs to use the var serverport 2015-10-08 23:52:41 +08:00
wing328
6ee42bebe6 add exception handling for #1267 2015-10-08 23:38:09 +08:00
wing328
69a346cb57 remove python3 frmo all-petstore.sh 2015-10-08 23:38:09 +08:00
wing328
d451d4efb8 fix NPE when model's allof with no property 2015-10-08 23:38:09 +08:00
Arne Jørgensen
b7b8b527db Use HTTP headers from ApiException in PHP client.
The `$httpHeader` variable was not set when catching exceptions.

See also #1354.

Regenerated php-petstore sample.
2015-10-08 11:46:36 +02:00
Arne Jørgensen
3bd4502bbf Deserialize httpHeader.
See #1354.

Regenerated php-petstore sample.
2015-10-08 11:25:43 +02:00
Tony Tam
733e19c113 fixed NPE for objc client 2015-10-07 17:11:52 -07:00
wing328
735cae7b49 Merge pull request #1335 from wing328/html_remove_site_css
[HTML] remove site.css from html docs
2015-10-07 16:26:53 +08:00
wing328
3b36bbe97d Update README.mustache 2015-10-06 18:39:44 +08:00
wing328
228e039046 Merge pull request #1333 from wing328/csharp_fix_accept
[C#] better Accept header selection for C# API client
2015-10-06 18:26:02 +08:00
wing328
b27663e1ad Update README.md 2015-10-06 16:14:13 +08:00
wing328
eaddebe220 Update list of generator 2015-10-06 16:13:06 +08:00
wing328
f8485f26d3 Merge pull request #1317 from cbornet/online_options
Add options to online generator
2015-10-06 12:00:51 +08:00
Ches Martin
d9117480f8 [objc] Add casts that avoid method resolution errors
Because the `data` that we're deserializing is of type `id` (essentially
untyped), it's possible to have method resolution clashes without
explicitly casting here once we've parsed a type. I had this issue with
a pagination container model, for instance, which has a field named
`count` that conflicts with the property of the same name on `NSArray`
or `NSDictionary`.
2015-10-06 10:58:48 +07:00
wing328
7b79abef63 update c# sample 2015-10-06 11:33:00 +08:00
wing328
dbd89092f0 add accept header select to async method 2015-10-06 11:30:17 +08:00
wing328
6ed7663466 add remarks to csharp method 2015-10-06 11:28:18 +08:00
wing328
d882e9fe0a remove site.css from html docs 2015-10-05 22:33:25 +08:00
wing328
ea1c2809f7 Merge pull request #1329 from iushankin/issue-1304-part3
Fixed #1304: Migrate tests from the Scala to the plain Java. Part 3
2015-10-05 18:29:36 +08:00
wing328
3c78e29a12 better Accept header for C# 2015-10-05 13:19:58 +08:00
wing328
6cb4473526 Merge pull request #1328 from ducin/docs-toc
readme: Table of Contents
2015-10-05 00:05:32 +08:00
wing328
65a9c78544 Merge pull request #1319 from cbornet/online_version
Add version to swagger.json from pom's version
2015-10-04 23:57:16 +08:00
wing328
69911a1974 Merge pull request #1311 from xhh/java-okhttp-gson-ssl
Add some SSL options to Java okhttp-gson client
2015-10-04 23:02:25 +08:00
wing328
761029241e Merge pull request #1331 from qswinson/csharp_comments
Csharp comments
2015-10-03 10:31:44 +08:00
Quenby Mitchell
1018ca634d generic types need to be escaped for the xmldoc to work for return documentation. List<Foo> should be List{Foo} for the c# compiler to generate the documentation for the generic type. since there is not a spare parameter on the CodegenOperation model to put this correctly formatted documentation, for right now, don't include the return type in the documentation. 2015-10-02 13:11:54 -05:00
Quenby Mitchell
ff0b0c15a8 fix build warnings on CSharp xml comments 2015-10-02 12:14:41 -05:00
wing328
727c32f2a2 Merge pull request #1312 from iushankin/issue-1304
Issue #1304: Migrate tests from the Scala to the plain Java. Part 2
2015-10-02 23:50:37 +08:00
wing328
3c0eab65f3 Merge pull request #1323 from cbornet/fix_scopes_npe
Fix NPE in empty operation oauth scopes
2015-10-02 23:39:25 +08:00
wing328
a72ac99c91 Merge pull request #1316 from cbornet/dynamic_enum
Dynamically fill swagger enum from codegen client names
2015-10-02 23:37:15 +08:00
Ivan Ushankin
4b62a94350 Fixed #1304: Migrate tests from the Scala to the plain Java. Part 3 2015-10-02 16:20:16 +03:00
Tomasz Ducin
12d8f97aee improving ToC 2015-10-01 23:26:24 +02:00
Tomasz Ducin
acaf1b1cd0 added Table of Contents
Initial version of table of contents - showing all headers in the current shape.
2015-10-01 23:14:34 +02:00
cbornet
c1c3439b86 fix some wrong indentations 2015-10-01 17:42:33 +02:00
cbornet
5744bb4053 fix npe in empty operation scopes
Fix #1322
2015-10-01 17:35:07 +02:00
wing328
2711e375cc Merge pull request #1310 from wing328/fix_dynamic_html_parameter_name
[HTML] Fix parameter name in dynamic-html
2015-10-01 20:07:29 +08:00
cbornet
25abc15233 add version to swagger.json from pom's version
Fix #1314
2015-10-01 14:00:19 +02:00
cbornet
984b645ea1 add options to online generator
Fix #1313
2015-10-01 11:09:25 +02:00
wing328
253c46a0d5 Merge pull request #1309 from wing328/fix_springmvc_object
[SpringMVC] fix compilation error by removing import of Object
2015-10-01 10:02:20 +08:00
cbornet
7c431a8e11 dynamically fill swagger enum from codegen client names 2015-10-01 01:12:09 +02:00
Ivan Ushankin
3c98e32765 Issue #1304: Migrate tests from the Scala to the plain Java. Part 2 2015-09-30 17:38:01 +03:00
xhh
f483f934d8 Add some SSL options Java okhttp-gson client
* Add the `verifyingSsl` option to allow skipping verifying SSL
  certificate and host name (default to verify)
* Add `sslCaCert` to allow customizing the CA certificates
2015-09-30 19:48:18 +08:00
wing328
053af7a749 Merge pull request #1305 from iushankin/issue-1304
Fixed #1304: Migrate tests from the Scala to the plain Java. Part 1
2015-09-30 17:57:05 +08:00
wing328
d2d6ff661a fix parameter name in dynamic html 2015-09-30 17:24:11 +08:00
wing328
17bdd73891 fix springmvc by removing import of Object 2015-09-30 16:28:17 +08:00
Tony Tam
d9bfb884da Merge pull request #1307 from warnyul/master
Fix objc model inheritance.
2015-09-29 22:58:43 -07:00
Balázs Varga
19d8766363 Fix model inheritance. 2015-09-29 10:07:51 +02:00
wing328
e270fdcfd9 Merge pull request #1300 from geekerzp/python_client_cert
[Python] Support client certificate file and client key file in TLS/SSL
2015-09-29 14:50:11 +08:00
wing328
a2f47672e7 Merge pull request #1297 from geekerzp/objc_upload_file
[Objc] Add test case in objc client
2015-09-29 14:49:37 +08:00
wing328
90dc0a7bd8 Merge pull request #1302 from geekerzp/ruby_client_cert
[Ruby] Support client ceritficate in ruby client
2015-09-29 14:44:17 +08:00
Fredric Dorothy
2a679f798a Merge https://github.com/fdorothy/swagger-codegen 2015-09-28 11:52:30 -05:00
Fredric Dorothy
dbecb9e562 Added ability to set a configuration file for custom code generators. This should work the same as when you're using one of the built-in generators. 2015-09-28 11:50:08 -05:00
Ivan Ushankin
4db86003f5 Fixed #1304: Migrate tests from the Scala to the plain Java. Part 1 2015-09-28 19:03:02 +03:00
Tony Tam
d5cf2b6cfe made host dynamic for link generation 2015-09-28 08:51:39 -07:00
geekerzp
6a3108a6bf Support client ceritficate in ruby client 2015-09-28 16:31:47 +08:00
wing328
2ea3816e65 Merge pull request #1290 from geekerzp/model_name
[Python, Ruby] Fix issues in python and ruby clients
2015-09-28 08:35:28 +08:00
wing328
baca3027f4 Merge pull request #1298 from geekerzp/ruby_upload_file
[Ruby] Add test case in ruby client
2015-09-27 22:20:20 +08:00
wing328
0e9e2046e7 Merge pull request #1293 from xhh/fix-set-date-format
[Java jersey2]: Fix ApiClient.setDateFormat in Java jersey2 client
2015-09-27 21:48:53 +08:00
wing328
e301020acc Merge pull request #1295 from geekerzp/python_upload_file
[Python] Fix issue in python client
2015-09-27 21:48:29 +08:00
geekerzp
cf1f113852 Support client certificate file and client key file in TLS/SSL in python client 2015-09-26 16:16:59 +08:00
wing328
c26a387d9a Merge pull request #1271 from laurentvdl/master
implement form parameter support using Angular $httpParamSerializer
2015-09-26 09:37:40 +08:00
geekerzp
c70ca9d572 Add test case in ruby client 2015-09-25 17:33:39 +08:00
geekerzp
6bdfb8810c Add test case in objc client 2015-09-25 16:48:19 +08:00
wing328
2a5ab78056 Merge pull request #1296 from xhh/fix-enum-constructor
Fix hard-coded constructor name of enum class in Java okhttp-gson client
2015-09-25 16:34:13 +08:00
xhh
e5a4ef3ba0 Fix hard-coded constructor name of enum class
in Java okhttp-gson client
2015-09-25 15:52:52 +08:00
geekerzp
9b148be57e Fix issue in python client.
If upload only file it will not send file content.
2015-09-25 15:10:32 +08:00
wing328
0380fc5a35 Merge pull request #1274 from geekerzp/objc_log
[Objc] Update objc debug logging
2015-09-25 11:57:28 +08:00
xhh
597282742b Fix ApiClient.setDateFormat in Java jersey2 client 2015-09-24 21:56:50 +08:00
wing328
5e805c2be6 Merge pull request #1284 from acourtneybrown/master
Fixed method name in Java ApiClient mustache template
2015-09-24 16:39:46 +08:00
wing328
b080abeb01 Merge pull request #1280 from xhh/primitive-string-response
[Java] Support primitive string response in Java clients
2015-09-24 16:37:17 +08:00
geekerzp
2943f41cdd Update python and ruby clients.
Use `sanitizeName` to sanitize model name.
2015-09-24 16:29:20 +08:00
geekerzp
84e0df6115 Fixed issue that model name not camelized in python client and ruby client 2015-09-24 16:23:44 +08:00
wing328
a49826e4d7 Merge pull request #1289 from geekerzp/python_log
[Python] Update python log
2015-09-24 16:09:06 +08:00
wing328
b8792b6a71 Merge pull request #1276 from bedag/master
Better diagnostics when something goes wrong
2015-09-24 11:42:48 +08:00
wing328
5ee86b9816 Merge pull request #1264 from xhh/java-enum-improvements
[Java] Improvements on enum var name in Java client
2015-09-24 11:42:11 +08:00
geekerzp
e32272aedb Update log in python client 2015-09-24 10:54:24 +08:00
wing328
ee7f447f77 Merge pull request #1187 from Edubits/swift-2.0
[Swift] Update generated code to Swift 2.0
2015-09-24 10:51:05 +08:00
wing328
a5fb689615 Merge pull request #1260 from wing328/remove_python3_generator
[Python] remove python3 generator
2015-09-24 10:50:47 +08:00
geekerzp
a26cf60a22 Revert "Revert "[Python] Fix issue in python client""
This reverts commit c59e2b88b1.
2015-09-24 10:08:16 +08:00
wing328
ed13d7b1b8 Merge pull request #1288 from swagger-api/revert-1281-python_log
Revert "[Python] Fix issue in python client"
2015-09-24 09:41:18 +08:00
wing328
c59e2b88b1 Revert "[Python] Fix issue in python client" 2015-09-24 09:30:49 +08:00
wing328
e8d40a146c Merge pull request #1281 from geekerzp/python_log
[Python] Fix issue in python client
2015-09-24 09:27:00 +08:00
Adam Brown
4ef69794a3 Fixed method name in Java ApiClient mustache template 2015-09-23 14:16:26 -07:00
geekerzp
30fbdd4d05 Add class prefix to macro DebugLog in objc client 2015-09-23 17:18:07 +08:00
geekerzp
13c079342e Fixed issue #1262 2015-09-23 14:55:46 +08:00
xhh
a284bb7a51 Rebuild Java clients of the Petstore sample 2015-09-23 13:31:28 +08:00
xhh
44bbe301cb Support primitive string response in Java clients 2015-09-23 12:50:38 +08:00
wing328
69f8274287 Merge pull request #1272 from wing328/add_cli_parameter_order
Add CLI option to sort method arguments
2015-09-23 09:47:00 +08:00
wing328
770ea9d12e Merge pull request #1270 from xhh/php-sanitize-model-name
Fix #1145: sanitize model name in PHP client
2015-09-23 09:44:38 +08:00
wing328
d09d8bb495 Merge pull request #1269 from efossier/expose-readonly-to-template
Expose readOnly attribute on model properties to templates
2015-09-23 09:29:49 +08:00
wing328
85f99934c8 Merge pull request #1256 from cbornet/java_retrofit_lib
Set retrofit as a java library
2015-09-23 09:12:07 +08:00
Adrian Moos
66dee928d2 consistent indentation (spaces, not tabs) 2015-09-22 18:08:47 +02:00
Adrian Moos
d4a94fbf52 - DefaultGenerator now communicates failures by throwing exceptions
rather than setting a status flag in a public field
- DefaultGenerator now decorates exceptions to record where a failure
occured (which api, model or operation?)
- CodeGenMojo now propagates this exception to maven to abort the build
2015-09-22 18:01:29 +02:00
geekerzp
844cae75b7 Update debug logging in objc client 2015-09-22 16:32:15 +08:00
wing328
4e4e9e7893 add a CLI option to sort method argument 2015-09-22 15:57:22 +08:00
Laurent Van der Linden
61690d625f change the constructor signature to be backwards compatible
update petstore samples for angular and node
2015-09-22 09:20:52 +02:00
Laurent Van der Linden
1cd8141645 implement form parameter support using Angular $httpParamSerializer 2015-09-22 08:37:49 +02:00
wing328
98ff2d231f Merge pull request #1261 from wing328/typescript-node-fix-param-name
[TypeScript] fix parameter name for typescript-node using baseName
2015-09-22 14:22:07 +08:00
xhh
09add2d871 Fix test failure by allowing backslash in model name 2015-09-22 14:03:27 +08:00
xhh
9cbf2d3707 Fix #1145: sanitize model name in PHP client 2015-09-22 11:33:11 +08:00
geekerzp
0622838947 Fixed issues about logging in objc client 2015-09-22 09:29:48 +08:00
Evan Fossier
a6df340cdc Expose readOnly attribute on model properties to templates, can now use isReadOnly property in model templates 2015-09-21 17:34:23 -07:00
xhh
bcbf9c54c7 Remove unnecessary checking of empty string 2015-09-21 18:14:57 +08:00
xhh
6dcaa890cf Improvements on enum var name in Java client
* Place each enum var in a separate line
* Truncate common prefix when present
2015-09-21 17:29:26 +08:00
wing328
2b06a81a52 remove extra line break in typescript-node sample code 2015-09-20 23:17:04 +08:00
wing328
956624f1a4 remove extra line break for typescript-node 2015-09-20 23:15:02 +08:00
wing328
b1728aed7c update sample for typescript-node 2015-09-20 23:11:46 +08:00
wing328
8733be9ac9 update sample, fix formData basename 2015-09-20 23:06:29 +08:00
wing328
c203854254 fix parameter name for typescript-node using baseName 2015-09-20 22:59:56 +08:00
wing328
3dc3af8d18 remove python3 generator 2015-09-20 22:43:43 +08:00
wing328
cbc2fb237d Merge pull request #1252 from seanbright/model-with-no-props
Fix NPE in JavaClientCodegen when model has no properties of its own
2015-09-20 21:57:05 +08:00
wing328
b7d64d1352 Merge pull request #1254 from GoodTRKR/master
[Obj-C] removed extraneous logs unless logging is specifically enabled in the [SWGConfiguration sharedConfig] instance
2015-09-19 01:04:10 +08:00
cbornet
047b06ac84 remove retrofit codegen from config 2015-09-18 15:03:55 +02:00
cbornet
f29f5d6f13 fix error with formParams in async ops 2015-09-18 14:45:37 +02:00
cbornet
1863aca0fa set retrofit as a java library
Fix #1247
Fix #1248
2015-09-18 14:21:48 +02:00
wing328
cf300c09da Merge pull request #1246 from laurentvdl/patch
Use the baseName when referring to path and query parameters.
2015-09-18 16:46:46 +08:00
wing328
27ab9c2e57 Merge pull request #1238 from DariusMR/master
unicode type forgotten in api_client.mustache for python
2015-09-18 16:44:35 +08:00
Laurent Van der Linden
c83c564a19 Use the baseName when referring to header parameters. 2015-09-18 08:05:13 +02:00
wing328
8978a0a906 Merge pull request #1242 from xhh/options-http-method
[Java okhttp-gson] Support the "OPTIONS"  HTTP method
2015-09-18 10:47:27 +08:00
wing328
6d21422bad Merge pull request #1245 from geekerzp/objc_ssl
[Objc] Enhancements of objc client
2015-09-18 10:45:43 +08:00
Matthew Davis
65cfa735d5 [Obj-C] removed extraneous logs unless logging is specifically enabled in the [SWGConfiguration sharedConfig] instance 2015-09-17 17:39:26 -07:00
Sean Bright
e2ce427fb1 Fix NPE in JavaClientCodegen when model has no properties of its own
A model that inherits from another model and does not add its own properties
causes JavaClientCodegen to crash silently with an NPE.

Fixes #1141
2015-09-17 14:35:07 -04:00
Laurent Van der Linden
781458b0d1 Use the baseName when referring to path and query parameters. 2015-09-17 12:46:20 +02:00
DariusM
65f86dbb0f unicode type forgotten in api_client.mustache for python2, works also with python3 2015-09-17 10:31:40 +02:00
DariusM
cc1c495ea5 unicode type forgotten in api_client.mustache 2015-09-17 10:26:08 +02:00
geekerzp
261ae79528 Remove space from parameterToString in objc client 2015-09-17 15:59:03 +08:00
geekerzp
fb14585adf Add parameterToString method 2015-09-17 15:20:11 +08:00
wing328
27e434d786 Merge pull request #1239 from ePaul/feature/use-baseName-for-jsonproperty
Use the swagger property names in all Java models.
2015-09-17 14:43:21 +08:00
wing328
2a37c48e12 Merge pull request #1243 from process/patch-1
[DOC] fix typo in Python api_client template
2015-09-17 14:42:45 +08:00
Justin Chines
85df7c8ed7 [DOC] fix typo in Python api_client template 2015-09-16 22:09:01 -07:00
wing328
b3ca9cdbe0 Merge pull request #1154 from cbornet/retrofit_oauth
[Retrofit] add authorizations to retrofit client
2015-09-17 11:47:06 +08:00
xhh
477d5c40d9 Rebuild Java okhttp-gson client of Petstore sample 2015-09-17 10:22:53 +08:00
xhh
460c8caa8a Support OPTIONS in Java okhttp-gson client 2015-09-17 10:22:53 +08:00
wing328
53e13aee19 Merge pull request #1234 from geekerzp/python_http_verb
[Python] Enhancements http verbs of python client
2015-09-16 22:32:58 +08:00
wing328
ec05dc4414 Merge pull request #1236 from wing328/springmvc_file_upload
[SpringMVC] Replaced hard-coded fileDetail with {{baseName}}
2015-09-16 18:17:12 +08:00
Paul Ebermann
7eec769654 Use the swagger property names in all Java models.
This changes `@JsonProperty({{name}})` to `@JsonProperty({{baseName}})` in model.mustache for JavaInflector, JavaJaxRS and JavaSpringMVC.
In pull request #535 this was already done for the plain Java files (which get used on client side).

This replaces the sanitized names in the generated code by the original property names from the swagger document.
2015-09-16 11:36:51 +02:00
wing328
f483b8dfa8 Merge pull request #1233 from geekerzp/ruby-apiclient
Fix issue that using temp_folder_path from ApiClient in ruby client
2015-09-15 22:28:54 +08:00
wing328
2ac41ff080 repalced hard-coded fileDetail with {{baseName}} 2015-09-15 22:14:13 +08:00
geekerzp
ade61c0701 Support http body in OPTIONS request in python client 2015-09-15 17:48:59 +08:00
geekerzp
bd63c1d9d9 Support OPTIONS http verb in python client. 2015-09-15 16:40:23 +08:00
geekerzp
5d1e70544c Fix issue that using temp_folder_path from ApiClient
It should use the one from the Configuration object
2015-09-15 15:04:39 +08:00
wing328
349702adf9 Merge pull request #1232 from geekerzp/python_issue
Fix issue in python client
2015-09-15 12:14:49 +08:00
wing328
88410635b3 Merge pull request #1228 from geekerzp/objc_ssl
Objc client ssl verification
2015-09-15 10:14:20 +08:00
geekerzp
0262d3c8d2 Fix issue #1230 2015-09-15 09:57:55 +08:00
wing328
96f4a3ab71 Merge pull request #1226 from xhh/java-okhttp-gson-file-downloading
[Java okhttp-gson] Add support of file downloading
2015-09-14 22:09:48 +08:00
geekerzp
b0063d9e9f Objc client ssl verification 2015-09-14 18:29:49 +08:00
wing328
48bd888483 Merge pull request #1222 from madhukard/master
Java: Support List of Enums in postProcessModels
2015-09-14 01:21:34 +08:00
wing328
1358e33bf6 Merge pull request #1223 from GoodTRKR/master
[Obj-C] Fixed an issue where NSNumber parameters would cause a crash in multipart/form-data upload endpoints
2015-09-14 00:28:43 +08:00
wing328
c8edacb25c Merge pull request #1225 from wing328/fix_getHasXXXParam
Fix getHasXxxParam in CodegenOperation
2015-09-13 22:15:50 +08:00
wing328
47dc4d7642 Merge pull request #1218 from wing328/csharp_fix_map_string
[C#] update map to use String instead of string
2015-09-13 22:15:22 +08:00
xhh
1ecb8a74c1 Allow customizing temp folder for file downloading 2015-09-13 21:02:22 +08:00
xhh
967c574f5b Support file downloading in Java okhttp-gson client 2015-09-13 18:41:53 +08:00
wing328
8bb8a7a79a fix getHasXxxParam 2015-09-12 16:00:10 +08:00
Matthew Davis
1268b0627f added NSNumber catch to pathParams as well 2015-09-11 17:33:36 -07:00
Matthew Davis
761f172c2f forgot an 'else' statement 2015-09-11 17:27:25 -07:00
Matthew Davis
1321d5f9a5 [Obj-C] Fixed an issue where NSNumber parameters would cause a crash in multipart/form-data upload endpoints 2015-09-11 17:23:48 -07:00
Madhukar Devaraju
35f462f571 Java: Support List of Enums in postProcessModels 2015-09-11 14:56:37 -07:00
wing328
f21fa08cd6 update C# ParamterToString to support array of object, add test case 2015-09-11 22:48:38 +08:00
wing328
16afd4ee9b update map to use String instead of string 2015-09-11 18:02:51 +08:00
wing328
46f78f2180 Merge pull request #1215 from xhh/java-last-resp-info
[Java jersey2 okhttp-gson] Fix compilation error, record status code and response headers of last request
2015-09-11 16:05:09 +08:00
xhh
2e402bba97 Rebuild Java clients for the petstore sample 2015-09-11 13:22:37 +08:00
xhh
34f196a144 Java-okhttp-gson: allow access to status code and response headers of last (async) request 2015-09-11 13:22:37 +08:00
xhh
def3f5b3fb Java-jersey2: record status code and response headers of last request 2015-09-11 13:22:37 +08:00
xhh
60e5a34534 Update Java-jersey2 client to skip binary support
Binary parameter/response support was added to the default Java client
codegen which changed the signature of the `invokeAPI` method in
"api.mustache", causing the "jersey2" client fail to compile.
Here an separate version of `api.mustache` is added for "jersey2" client
which does not handle binary support (for now).
2015-09-11 13:22:37 +08:00
wing328
1eed90f34e Merge pull request #1214 from GoodTRKR/master
[Obj-C] Fixed an issue with incorrect references in the ApiClient when using a custom prefix.
2015-09-11 09:30:58 +08:00
wing328
e34063f0f2 Merge pull request #1213 from LeoYReyes/patch-1
[C#] Api.mustache - Remove the parameter in the BasePath getter
2015-09-11 08:41:08 +08:00
Matthew Davis
dbdcf34044 [Obj-C] Fixed an issue with incorrect references in the ApiClient when using a custom prefix. 2015-09-10 15:14:53 -07:00
Leo
43d71ed10c Remove the parameter in the BasePath getter
The parameter in the BasePath getter is not needed.
2015-09-10 12:17:23 -05:00
wing328
b3db24ead6 Merge pull request #1210 from arnested/missing-head-and-options-in-php-client
Add HEAD and OPTIONS support in PHP client.
2015-09-10 22:07:31 +08:00
wing328
d21c6f2b45 Merge pull request #1205 from wing328/SLF4J_warning
update pom.xml to remove warning
2015-09-10 21:52:45 +08:00
Arne Jørgensen
3c3762fd92 Add HEAD and OPTIONS support in PHP client.
The generated PHP client didn't support the HEAD and OPTIONS methods.

Followup on #1156 and #1201.
2015-09-10 14:55:49 +02:00
Robin Eggenkamp
0edbfeff15 Bump Alamofire version to final 2.0.0 2015-09-10 14:24:55 +02:00
Ron
4b539a9d6e Merge pull request #1206 from wing328/fix_sinatra_type
[Sinatra] fix sinatra type (tag)
2015-09-09 15:59:22 +03:00
wing328
71a3218bb3 fix sinatra type (tag) 2015-09-09 20:27:59 +08:00
wing328
d37cf6595a update pom.xml to get rid of the warning 2015-09-09 16:20:17 +08:00
wing328
1bac705876 Merge pull request #1200 from wing328/dart_permission
[Dart] update dart-petstore.sh permission
2015-09-08 22:28:12 +08:00
wing328
3385082e2c Merge pull request #1201 from arnested/missing-head
Fix HEAD path item is missing.
2015-09-08 22:28:03 +08:00
wing328
2b1a63a7de Merge pull request #1150 from ePaul/bugfix/1146-escape-line-breaks-in-response-description
jaxrs: escape line breaks in response description
2015-09-08 21:38:50 +08:00
wing328
93847d8dc7 Merge pull request #1149 from ePaul/feature/1146-do-not-escape-javadocs
jaxrs (and other Java generators): do not escape newlines in generated javadocs.
2015-09-08 21:17:14 +08:00
Arne Jørgensen
3514bf14b3 Fix HEAD path item is missing.
Fixes #1156.
2015-09-08 10:00:17 +02:00
wing328
e215a1c87f update dart permission 2015-09-08 11:38:01 +08:00
wing328
5bcd8fb207 Merge pull request #1199 from xhh/java-okhttp-gson
[Java okhttp-gson, Android] Set source and target compatibility to 1.7 in build.gradle
2015-09-08 11:31:38 +08:00
wing328
a8f7708789 Merge pull request #1198 from yissachar/dart
Add Dart support
2015-09-08 09:18:51 +08:00
wing328
26c0bfef7d Merge pull request #1196 from wing328/typescript_basepath
[TypeScript] Fix base path
2015-09-07 21:57:23 +08:00
wing328
12190e0900 Merge pull request #1172 from xhh/ruby-apiclient
[Ruby] Implement API client structure for Ruby client
2015-09-07 21:56:59 +08:00
wing328
f340a389e9 Merge pull request #1182 from Helmsdown/cli-enhancements-2
Refactor codegen to support an "uber" meta model for user defined values
2015-09-07 21:55:50 +08:00
xhh
8b96cdb7d7 Set source/target compatibility in Android client 2015-09-07 16:35:34 +08:00
xhh
90307cafc6 Merge branch 'master' into java-okhttp-gson 2015-09-07 15:33:18 +08:00
Yissachar Radcliffe
58c5ecf13c Generate auth files to correct location 2015-09-06 19:58:28 -04:00
Yissachar Radcliffe
e72a53448e Add Dart support 2015-09-06 18:35:29 -04:00
wing328
90b89c6189 fix typescript basepath 2015-09-05 16:48:00 +08:00
wing328
ee1febcd95 Merge pull request #1188 from wing328/master
[NodeJS] fixed HTML-escaped description on nodejs json files
2015-09-05 15:44:16 +08:00
russellb337
6c079e95d9 Merge remote-tracking branch 'upstream/master' into cli-enhancements-2 2015-09-04 15:25:10 -07:00
russellb337
d22398eb73 put all values into dynamic properties map 2015-09-04 15:24:36 -07:00
wing328
30228dcca5 Merge pull request #1192 from SparrowJang/master
Python - response is empty object
2015-09-04 22:42:39 +08:00
wing328
2e30a3af27 Merge pull request #1189 from mad102190/feature/objc-response-headers
[Obj-C] Added ability to access HTTP Response headers
2015-09-04 16:42:25 +08:00
wing328
212d240316 Merge pull request #1190 from mad102190/fixes/objc-podspec-generation
[Obj-C][Cocoapods] Added extra CLI options to generate a valid podspec file.
2015-09-04 16:36:17 +08:00
sparrow.jang
ba701be2f2 fixed a empty object for response 2015-09-04 15:20:34 +08:00
SparrowJang
f6d624be2a Merge pull request #2 from swagger-api/master
merge
2015-09-04 14:25:34 +08:00
Matthew Davis
f705e03fc4 changes to podspec.mustache to accept new params 2015-09-03 13:02:24 -07:00
Matthew Davis
75bb59572a added extra CLI options required to generate a valid (lint-able) podspec file. 2015-09-03 12:54:25 -07:00
Matthew Davis
f067b86fa0 re-built sample objc-petstore 2015-09-03 12:31:30 -07:00
Matthew Davis
2822e9ea38 added support for retrieving HTTP response headers in obj-c. Also added a +sharedAPI class method for easy initialization of an API class without passing headers 2015-09-03 12:18:00 -07:00
russellb337
435ce7b9d5 make JsonAnySetter for dynamic properties "builder" style 2015-09-03 10:16:44 -07:00
russellb337
ab6118afe4 update default generator to skip generation of models that have import mappings defined 2015-09-03 08:24:33 -07:00
wing328
8ce06fc898 fix HTML-escaped description on nodejs json files 2015-09-03 22:38:19 +08:00
wing328
9e8e5db7b3 Merge pull request #1180 from ist-ltd/master
Support dots in output folder for C# generator
2015-09-03 22:26:38 +08:00
russellb337
44b5c22cd4 Merge remote-tracking branch 'upstream/master' into cli-enhancements-2 2015-09-02 09:28:58 -07:00
russellb337
6d7557971b switch Generate to use CodegenConfigurator 2015-09-02 09:28:40 -07:00
Cameron
9af16c0d79 Support dots in output folder for C# generator 2015-09-02 13:36:35 +01:00
xhh
027e4c5a20 Set source and target compatibility to 1.7
in build.gradle to make it work with Android
2015-09-02 18:35:58 +08:00
wing328
c56d807a15 Merge pull request #1169 from boazsapir/master
Handle correctly the case of no default response (see comment in #1124)
2015-09-02 18:03:02 +08:00
wing328
7d4ba27e01 Merge pull request #1162 from xhh/java-okhttp-gson
[Java] Add a new library template: okhttp-gson
2015-09-02 16:21:39 +08:00
Tony Tam
c8ed2b0d50 Merge pull request #1175 from swagger-api/feature/issue-1173
formatting, vendor extensions on operations
2015-09-02 00:02:20 -07:00
Tony Tam
1520ec536e formatting, vendor extensions on operations 2015-09-01 23:34:29 -07:00
Tony Tam
e434380eae Merge pull request #1174 from swagger-api/feature/issue-1173
Feature/issue 1173
2015-09-01 23:16:13 -07:00
Tony Tam
5940f46f56 added vendor extensions on parameters per #1173 2015-09-01 23:04:33 -07:00
xhh
7c60e2097f Update API client initialization in Ruby test 2015-09-02 12:00:27 +08:00
xhh
fc7cffbab7 Merge branch 'master' into ruby-apiclient
Conflicts:
	modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RubyClientCodegen.java
2015-09-02 11:46:53 +08:00
Tony Tam
b099d1e7a2 added configuration to superclass for overriding param reordering for #1171 2015-09-01 15:53:58 -07:00
b_sapir
31e8aca357 Handle correctly the case of no default response (see comment in #1124) 2015-09-01 18:26:15 +03:00
wing328
d746894ecb Merge pull request #1168 from xhh/bug-enum-constructor
Fix bug of hard-coded enum name in Java client
2015-09-01 22:56:04 +08:00
xhh
2c64e0893b Fix bug of hard-coded enum name in Java client 2015-09-01 20:06:44 +08:00
xhh
3c79a692aa Use a separate library for base64-encoding in the okhttp-gson template 2015-09-01 19:56:06 +08:00
wing328
72255286b3 Merge pull request #1144 from ePaul/bugfix/1143-add-nullcheck-for-allowedvalues
Add null check to fix issue #1143
2015-09-01 11:54:22 +08:00
xhh
3112e4ad06 Add build files for Gradle and SBT 2015-09-01 11:20:44 +08:00
russellb337
38b1e1aad7 Merge branch 'master' into cli-enhancements-2 2015-08-31 15:20:17 -07:00
wing328
dfb87abe3a Merge pull request #1151 from ePaul/feature/1146-trim-whitespaces-before-escaping
trim strings before escaping
2015-08-31 22:21:38 +08:00
wing328
b96fdb6766 Merge pull request #1164 from ePaul/bugfix/1142-sanitize-api-name-for-spring-mvc
Issue #1142: sanitize api name before camelizing.
2015-08-31 21:46:25 +08:00
wing328
369ceb634d Merge pull request #1163 from ePaul/bugfix/1142-sanitize-file-name-for-models
Issue #1142: sanitize the class name for Java model classes.
2015-08-31 21:44:28 +08:00
Paul Ebermann
92f9b33eb6 Issue #1142: sanitize api name before camelizing.
This builds on #1139 in order to solve another part of #1142:
When the first component of a path contained a dash, the generated class name contained this dash too (for the "language" spring-mvc).
2015-08-31 15:14:54 +02:00
Robin Eggenkamp
5b12379a07 Add missing NSDateFormatter 2015-08-31 15:04:37 +02:00
Robin Eggenkamp
39b4034958 Replace NSError by ErrorType 2015-08-31 15:03:56 +02:00
Robin Eggenkamp
28030cba19 Merge branch 'master' into swift-2.0
Conflicts:
	modules/swagger-codegen/src/main/resources/swift/APIs.mustache
	modules/swagger-codegen/src/main/resources/swift/AlamofireImplementations.mustache
	modules/swagger-codegen/src/main/resources/swift/Cartfile.mustache
	modules/swagger-codegen/src/main/resources/swift/Models.mustache
	modules/swagger-codegen/src/main/resources/swift/Podspec.mustache
	modules/swagger-codegen/src/main/resources/swift/api.mustache
2015-08-31 14:41:41 +02:00
Paul Ebermann
e0679c0b14 Issue #1142: sanitize the class name for Java model classes.
This builds on #1139, calling the new sanitizeName() method before camelizing it when generating model names.
2015-08-31 14:13:48 +02:00
xhh
2fd8b8ff16 Update help text of config options in README 2015-08-31 20:10:29 +08:00
xhh
e35be1bd40 Generate Java petstore sample for okhttp-gson 2015-08-31 19:59:17 +08:00
wing328
39ac64d24a Merge pull request #1161 from wing328/upgrade_JMockit
Upgrade JMockit to 1.19
2015-08-31 18:55:38 +08:00
wing328
b846fa5c3e update JMockit to 1.19 2015-08-31 18:44:01 +08:00
xhh
3c84847adb Add a new library template to Java client: okhttp-gson
which uses OkHttp as HTTP library and Gson as JSON processing library
2015-08-31 18:42:09 +08:00
wing328
2b48ec072c Merge pull request #1153 from wing328/csharp_fix_encode
[C#] Fix UrlEncode in API client
2015-08-31 12:42:48 +08:00
wing328
8114c416b9 Merge pull request #1139 from wing328/sanitize_name
Add function to sanitize name (1)
2015-08-30 22:46:58 +08:00
wing328
adee62da7d Merge pull request #1138 from Helmsdown/cli-enhancements
Expose more configuration items in the CLI
2015-08-30 22:46:25 +08:00
cbornet
a207251b29 minor changes
removed gson version in pom and added a space between the parameters
2015-08-29 18:41:16 +02:00
cbornet
265de9654b add authorizations to retrofit client
added basic auth, api key and oauth support to the service generator using okhttp interceptors

Fix #962
2015-08-29 18:14:33 +02:00
wing328
177436e69c fix decode with encode 2015-08-29 22:43:22 +08:00
wing328
1331484a0f fix urlencode in apiclient 2015-08-29 22:39:44 +08:00
geekerzp
4477009ef8 Handle special characters in parameter names in ruby client 2015-08-29 16:19:43 +08:00
Paul Ebermann
930c5191e0 Issue #1146: trim string before escaping
This removes leading and trailing whitespace before escaping strings. This gets rid of annoying `\n` in some string literals (e.g. in annotations).
2015-08-28 19:56:37 +02:00
russellb337
5f811f3ba7 merge from upstream/master 2015-08-28 10:47:08 -07:00
Paul Ebermann
74bffbaadb Issue #1146: fix indentation in the generated API file. 2015-08-28 19:41:32 +02:00
Paul Ebermann
cdd104d3fb Issue #1146: escape the response description.
This prevents line breaks in string literals, which are not allowed in Java.
2015-08-28 19:39:01 +02:00
Paul Ebermann
be84f03d14 Issue #1146: do not escape newlines in generated javadocs.
For this, we add a property `unescapedDescription` to CodegenModel + CodegenProperty, and use them for the Javadoc generation, while the annotation uses the escaped `description`.
2015-08-28 18:40:14 +02:00
wing328
28579cee03 Merge pull request #1135 from restlet/fix/nodejs_server_swagger_invalid_json
[Node.js] fix invalid JSON being generated in swagger.json
2015-08-28 18:31:39 +08:00
Paul Ebermann
32ffab4519 fix issue #1143: add another null check.
The problem was trying to iterate over a null list.
2015-08-28 11:39:45 +02:00
wing328
e3c6cc3220 Merge pull request #1121 from Edubits/prevent-NPE
Fix possible NullPointerException
2015-08-28 16:05:20 +08:00
wing328
84346c0ba6 Merge pull request #1122 from F481/master
added some useful log/output messages and exception handling
2015-08-28 15:53:35 +08:00
russellb337
acbf3d3cc5 comment twak 2015-08-27 15:59:10 -07:00
russellb337
5c74146879 a few tweaks 2015-08-27 15:56:58 -07:00
russellb337
a59c128f90 curse you github desktop client for not refreshing when i want you to 2015-08-27 15:40:56 -07:00
russellb337
810bf58c3a first draft of CodegenConfigurator 2015-08-27 15:40:33 -07:00
russellb337
724683fab0 Merge branch 'master' into cli-enhancements 2015-08-27 10:18:55 -07:00
russellb337
074ba1ea54 undo some of the debugging changes I made 2015-08-27 09:11:49 -07:00
wing328
9e5de7da5e Merge pull request #1132 from geekerzp/python-configuration
[Python] Add option `verify_ssl` to switch SSL/TLS verification
2015-08-27 17:01:29 +08:00
wing328
50f6067831 add a case to handle space in name 2015-08-27 16:47:41 +08:00
wing328
9453967815 add function to sanitize name 2015-08-27 16:14:07 +08:00
F481
fc4fce3731 write processOperation debug output only if the debugOperations property is set 2015-08-27 08:06:24 +02:00
russellb337
d31013d977 remove reflections from parent pom 2015-08-26 18:50:29 -07:00
russellb337
ccf0cc8375 whoops, didn't mean to upgrade the minor version 2015-08-26 18:35:22 -07:00
russellb337
99ed012fc6 trying a new version of jetty 2015-08-26 18:31:29 -07:00
russellb337
8ba4a6d7ad downgrade reflections version
I’m guessing
2015-08-26 18:25:23 -07:00
russellb337
60fddcf378 adding back imports that somewhere got deleted during reformatting 2015-08-26 17:55:02 -07:00
russellb337
cf5982d2c4 remove class comment 2015-08-26 17:51:19 -07:00
russellb337
1378976d37 merging upstream changes 2015-08-26 17:40:49 -07:00
russellb337
e5811ebdc7 expose more generate options in the cli 2015-08-26 17:38:51 -07:00
Hugo Wood
d434b7c440 fix invalid JSON being generated in swagger.json of Node.js server 2015-08-26 17:34:53 +02:00
wing328
8de9e23814 Merge pull request #1131 from wing328/csharp_fix_compilebat
[C#] fix invokerPackage with packageName in compile.mustache
2015-08-26 17:30:07 +08:00
wing328
b35a7b696e Merge pull request #1127 from ivanmartinvalle/master
Add status code and response headers of the last request to java and c#
2015-08-26 17:27:34 +08:00
wing328
587028efd1 Merge pull request #1129 from geekerzp/objc-test
[Objc] Add test cases for sanitizeForSerialization method in objc client
2015-08-26 17:02:55 +08:00
wing328
af8d61cc02 Merge pull request #1130 from geekerzp/python-test
[Python] Add test cases for sanitize_for_serialization method in python client
2015-08-26 16:46:42 +08:00
wing328
1996aa9244 Merge pull request #1126 from xhh/java-enum-refactor
[Java] Support special characters in enum values
2015-08-26 16:41:56 +08:00
wing328
f79f8895c5 Merge pull request #1125 from wing328/php_param_name
[PHP] add camelCase support for variable naming
2015-08-26 09:49:08 +08:00
geekerzp
b3d28f07f1 Add option verify_ssl to switch SSL/TLS verification. 2015-08-25 17:58:14 +08:00
wing328
570a595ffb fix invokerPackage with packageName in compile.mustache 2015-08-25 15:35:22 +08:00
geekerzp
568b7a4fcd Add test cases for sanitize_for_serialization method in python client. 2015-08-25 15:04:46 +08:00
geekerzp
1b2f491b0e Add tese case for sanitizing array of models in objc client. 2015-08-25 11:16:19 +08:00
geekerzp
eb21963fa5 Update test case testSanitizeForSerialization in objc client. 2015-08-25 10:51:03 +08:00
geekerzp
ab5483cd04 Add test cases for sanitizeForSerialization method in objc client. 2015-08-25 09:54:30 +08:00
Tony Tam
392e5172b5 changed default behavior for inflector to have unimplemented handlers 2015-08-24 17:26:26 -07:00
ivanmartinvalle
52dc7e210c Add status code and response headers of the last request to java and csharp templates per #990 2015-08-24 18:35:06 -05:00
Tony Tam
15e336b90a Merge pull request #1123 from wing328/python_typo
[Python] better wording for documentation
2015-08-24 07:18:42 -07:00
Tony Tam
698ed970dc Merge pull request #1124 from boazsapir/binary
support binary input and output
2015-08-24 07:16:29 -07:00
wing328
a43d2163a0 add camelCase support for php variable naming 2015-08-24 21:53:28 +08:00
b_sapir
564dffa7e8 Merge remote-tracking branch 'origin/binary' into binary
Conflicts:
	modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java
	modules/swagger-codegen/src/main/resources/Java/ApiClient.mustache
	modules/swagger-codegen/src/main/resources/Java/api.mustache
2015-08-24 16:15:18 +03:00
wing328
68f61d9a37 use snake_case instead of under_score 2015-08-24 21:11:52 +08:00
wing328
a7c08e680c update python samples 2015-08-24 21:08:21 +08:00
wing328
2251a2f892 fix typo, update documentation for python lib 2015-08-24 21:08:21 +08:00
b_sapir
b0c776bbea Support binary input and output - fix some merge problems 2015-08-24 15:59:58 +03:00
F481
3d89399b58 fixed syntax error 2015-08-24 14:28:13 +02:00
F481
0261121d78 added some useful log/output messages and exception handling 2015-08-24 14:04:50 +02:00
b_sapir
c177cf75d2 Support binary input and output (for body parameters or responses with type "string" and format "binary". Implemented for Java. 2015-08-24 15:04:10 +03:00
b_sapir
d4b4fe4b47 Support binary input and output (for body parameters or responses with type "string" and format "binary". Implemented for Java. 2015-08-24 14:33:15 +03:00
Robin Eggenkamp
e956495665 [Swift] Update to new Swift 2.0 syntax and Xcode 7
Note: configs with responseAs: “PromiseKit” won’t work yet
2015-08-24 12:27:33 +02:00
xhh
8408a97aef Java: Support special characters in enum values
and use upper case for enum names

Conflicts:
	samples/client/petstore/java/default/src/main/java/io/swagger/client/JSON.java
	samples/client/petstore/java/default/src/main/java/io/swagger/client/model/Order.java
	samples/client/petstore/java/default/src/main/java/io/swagger/client/model/Pet.java
2015-08-24 18:21:16 +08:00
Robin Eggenkamp
b3afbe73b9 [Swift] Add missing checks for usePromiseKit 2015-08-24 12:20:34 +02:00
Robin Eggenkamp
85aabbe810 Fix possible NullPointerException
getWrapped() returns a Boolean which can be null
2015-08-24 12:09:14 +02:00
Ron
3f8dbf416d Update README.md 2015-08-24 11:20:51 +03:00
Ron
0e0bfde3a8 Update README.md 2015-08-24 11:20:30 +03:00
Tony Tam
29a2eedc1e java8 tag fixes 2015-08-24 01:04:33 -07:00
Tony Tam
0d5c066605 fixed scalatest version 2015-08-24 01:04:28 -07:00
Tony Tam
6820179903 fixed scalatest version 2015-08-24 01:04:24 -07:00
Tony Tam
617fa43a89 updated development version 2015-08-24 00:52:35 -07:00
Tony Tam
dd67287d63 updated development version 2015-08-24 00:51:18 -07:00
Tony Tam
6aa66897aa updated readme 2015-08-24 00:44:03 -07:00
Tony Tam
9b0ddd3a7f Merge branch 'develop_2.0' 2015-08-24 00:39:03 -07:00
Tony Tam
ee05366d0b updated README for release 2015-08-24 00:37:23 -07:00
Tony Tam
d048a68438 added sample 2015-08-24 00:33:26 -07:00
Tony Tam
9cc7615b71 rebuilt, updated versions 2015-08-24 00:32:58 -07:00
Tony Tam
dfb9d26c75 Merge branch 'wing328-fix_java_serialize' into develop_2.0 2015-08-24 00:03:31 -07:00
Tony Tam
715c0af41f merged & rebuilt 2015-08-24 00:03:20 -07:00
Tony Tam
65829e5b6e merged & rebuilt 2015-08-24 00:03:08 -07:00
Tony Tam
a3c7e22d55 Merge pull request #1116 from swagger-api/issue-1115
fixes for jaxrs codegen
2015-08-23 23:56:14 -07:00
Tony Tam
d8ceb8c648 enabled samples 2015-08-23 23:47:01 -07:00
Tony Tam
87f1ef4dc2 re-ordered 2015-08-23 23:46:54 -07:00
Tony Tam
7c2310a13f updated to jersey 1.18.1, fixes for #1115 2015-08-23 23:34:35 -07:00
Tony Tam
6dcb8da2d8 altered to return inner type only 2015-08-23 23:33:55 -07:00
Tony Tam
a83f01ad60 made string safe 2015-08-23 23:33:27 -07:00
Tony Tam
6c1f7243bf rebuilt 2015-08-23 23:29:53 -07:00
wing328
164ed99812 fix serializableModel (boolean) 2015-08-24 11:50:21 +08:00
Tony Tam
355cc88e0d Merge pull request #1113 from swagger-api/issue-1112
moved file
2015-08-23 19:04:14 -07:00
Tony Tam
35ed412d1e moved file 2015-08-23 18:58:46 -07:00
Tony Tam
a5190266b6 Merge pull request #1111 from swagger-api/revert-1029-jaxrs-server-codegen-improvements
Revert "fixed generated code to go to target/generated-sources, added…
2015-08-23 18:53:05 -07:00
Tony Tam
d51fe80138 Revert "fixed generated code to go to target/generated-sources, added maven-c…" 2015-08-23 18:28:42 -07:00
Tony Tam
ec9cdca7cb Merge pull request #1109 from swagger-api/rebase-issue-838
update files as rebase from #838
2015-08-23 17:38:34 -07:00
Tony Tam
8a9f43b142 Merge pull request #910 from swagger-api/maven-plugin-configuration-improvements
Maven plugin configuration improvements
2015-08-23 17:33:55 -07:00
Tony Tam
0fc5702e4d Merge pull request #1029 from swagger-api/jaxrs-server-codegen-improvements
fixed generated code to go to target/generated-sources, added maven-c…
2015-08-23 17:32:29 -07:00
Tony Tam
3390fae15b Merge branch 'tiffanyperumpail-develop_2.0' into develop_2.0 2015-08-23 17:25:24 -07:00
Tony Tam
e19b883c89 Merge branch 'develop_2.0' of ssh://github.com/tiffanyperumpail/swagger-codegen into tiffanyperumpail-develop_2.0 2015-08-23 17:24:27 -07:00
Tony Tam
9531e1ae59 Merge branch 'Rogercf-support-to-array-of-enums' into develop_2.0 2015-08-23 17:22:44 -07:00
Tony Tam
3d38c41b0e resolved merge issue 2015-08-23 17:22:34 -07:00
Tony Tam
718e1ff68a Merge branch 'TobiasPfeifer-develop_2.0' into develop_2.0 2015-08-23 14:23:33 -07:00
Tony Tam
a6a9d743be added template 2015-08-23 14:23:20 -07:00
Tony Tam
414de00894 fixed return type, rebuilt 2015-08-23 14:23:00 -07:00
Tony Tam
cc7366787f Merge branch 'develop_2.0' of ssh://github.com/TobiasPfeifer/swagger-codegen into TobiasPfeifer-develop_2.0 2015-08-23 11:20:02 -07:00
Tony Tam
3486eecdfc Merge branch 'xhh-library-template-jersey2' into develop_2.0 2015-08-23 11:10:12 -07:00
Tony Tam
66e6d4fb8a rebuilt client 2015-08-23 11:10:04 -07:00
Tony Tam
f7dc066dec merged 2015-08-23 11:09:47 -07:00
Tony Tam
3160913433 update files as rebase from #838 2015-08-23 11:05:19 -07:00
Ole Lensmar
e253fdea33 Merge branches 'develop_2.0' and 'jaxrs-server-codegen-improvements' of https://github.com/swagger-api/swagger-codegen into jaxrs-server-codegen-improvements
Conflicts:
	modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java
2015-08-23 10:26:07 -04:00
Ole Lensmar
ac49d0dcdc post-merge fixes 2015-08-23 09:37:28 -04:00
Ole Lensmar
b956d47a9d Merge branches 'develop_2.0' and 'maven-plugin-configuration-improvements' of https://github.com/swagger-api/swagger-codegen into maven-plugin-configuration-improvements
Conflicts:
	modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java
2015-08-23 09:37:08 -04:00
wing328
f662699fd0 Merge pull request #1107 from wing328/php_fix_datetime
[PHP] Fixed deserialization for datetime object
2015-08-23 17:11:55 +08:00
wing328
1c1571cc3a Merge pull request #1106 from geekerzp/python-query
[Python] Fix issue that missing query parameters in python client.
2015-08-23 17:11:19 +08:00
wing328
e13374e1df Merge pull request #1105 from who/serializable_java_models
[Java] Adding an option so java models can implement Serializable
2015-08-23 17:10:57 +08:00
wing328
f2df26f6e6 fix deserializing datetime, add test case 2015-08-22 23:09:12 +08:00
xhh
569082743f Remove the unused LibraryHelp command 2015-08-22 22:05:43 +08:00
xhh
595c01c537 Merge branch 'develop_2.0' into library-template-jersey2
Conflicts:
	modules/swagger-codegen/src/main/resources/Java/JsonUtil.mustache
2015-08-22 21:53:04 +08:00
geekerzp
dc423cc11d Fix issue that Mssing query parameters in python client. 2015-08-22 17:46:13 +08:00
Andrew B
4f25a0e6c5 adding an option so java models can implement Serializable 2015-08-21 18:36:03 -07:00
Tony Tam
0af29cc5cf Merge pull request #1104 from swagger-api/issue-1103
added check, fix for #1103
2015-08-21 15:22:22 -07:00
Tony Tam
44b4af0374 added check, fix for #1103 2015-08-21 15:02:56 -07:00
Tony Tam
b68beefa69 Merge pull request #1101 from swagger-api/issue-1099
optional files are never written
2015-08-21 09:35:11 -07:00
Tony Tam
07162811a7 fix for #1099, added file check 2015-08-21 08:56:22 -07:00
wing328
4023460f2e Merge pull request #1096 from geekerzp/objc-param-to-str
[Objc] Sanitize request parameters in objc client
2015-08-21 22:22:17 +08:00
wing328
83bea6a0c5 Merge pull request #1095 from who/fix_issue_1089
[Java] Sanitize configurable package names (fixes #1089)
2015-08-21 22:15:53 +08:00
wing328
d03f680c64 Merge pull request #1090 from geekerzp/python-keyword
[Python] Change reserved word handling in python client.
2015-08-21 21:51:32 +08:00
geekerzp
4189d0765b Update api body template of objc client 2015-08-21 11:40:59 +08:00
geekerzp
6218ad139f Fix issue that it will throw error if not pass optional form param in objc client. 2015-08-21 11:20:29 +08:00
geekerzp
b7cd38d38b Update objc client.
Sanitize request parameters (path, query, header, form, body).
2015-08-21 09:42:31 +08:00
Andrew B
2b61305582 Fixing issue #1089 2015-08-20 14:16:10 -07:00
wing328
2057d0e144 Merge pull request #1068 from Helmsdown/add-generated-annotation
Add @Generated annotation to all generated Java templates
2015-08-20 17:45:17 +08:00
xhh
af2ec4cf85 Merge branch 'develop_2.0' into library-template-jersey2
Conflicts:
	modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java
	modules/swagger-codegen/src/main/resources/Java/api.mustache
2015-08-20 17:36:42 +08:00
wing328
9a239ad2a4 Merge pull request #1076 from DavidBiesack/static-html
improve static html; add template guards for collections.
2015-08-20 17:31:03 +08:00
wing328
a610fb5ac3 Merge pull request #1051 from who/develop_2.0
[Java] Fixing subClassed types so that they can use enums
2015-08-20 17:14:17 +08:00
Andrew B
fb4c62cc28 Fixing merge conflict in pom.xml 2015-08-19 23:08:49 -07:00
geekerzp
6d58d44542 Merge branch 'ruby-api-client' into ruby-apiclient 2015-08-20 11:34:07 +08:00
xhh
0e2e7838ae Merge branch 'bug-fix-ruby-file-upload' into ruby-api-client
Conflicts:
	modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache
	samples/client/petstore/ruby/lib/petstore/swagger/request.rb
2015-08-20 11:24:33 +08:00
xhh
2e3f94c2a5 Add file used in test: hello.txt 2015-08-20 11:18:05 +08:00
xhh
e02a9f1797 Merge branch 'develop_2.0' into ruby-api-client 2015-08-20 11:10:25 +08:00
xhh
0d399d3f6a Add spec for file uploading 2015-08-20 11:07:20 +08:00
xhh
030e45982c Add back support of file uploading to Ruby client 2015-08-20 10:45:40 +08:00
geekerzp
894d571ea5 Change reserved word handling in python client.
* First, remove the beginning underscores.
* Then, append underscore if the var is reserved word or number.
2015-08-19 18:05:47 +08:00
wing328
dc1992ad45 Merge pull request #1081 from wing328/php_var_name_number
[PHP, Perl, Silex] fixed variable names starting with number, made LOGGER protected
2015-08-19 14:56:13 +08:00
geekerzp
7be6e971fa Update api client of ruby client.
Update ApiClient#build_request, change `@verify_ssl`, `@ssl_ca_cert`, `@debugging`
to `Configuration.verify_ssl`, `Configuration.ssl_ca_cert`, `Configuration.debugging`.
2015-08-18 20:21:56 +08:00
wing328
c62fca8c54 Merge pull request #1079 from wing328/add_flash_generator
[Flash] Add back Flash generator
2015-08-18 20:04:53 +08:00
geekerzp
828f8694c8 Fix typo in ruby client 2015-08-18 16:13:32 +08:00
geekerzp
31d948fc16 Update readme of ruby client 2015-08-18 14:35:54 +08:00
geekerzp
a481db7486 Add configuration object in ruby client 2015-08-18 14:27:09 +08:00
wing328
5d52952ebd Merge pull request #1077 from geekerzp/objc-apiclient
[Objc] Change the ApiClient  initialization of objc client
2015-08-18 09:39:48 +08:00
wing328
c1fbf6bb1c Merge branch 'php_var_name_number' of https://github.com/wing328/swagger-codegen into php_var_name_number 2015-08-17 14:40:12 +08:00
wing328
10cd672529 fix variable name starting with number, make LOGGER protected 2015-08-17 14:39:29 +08:00
wing328
52918d325e Merge pull request #1082 from wing328/fix_pom_swagger_parser
update swagger-parser-version to 1.0.10 (removed snapshot)
2015-08-17 14:38:11 +08:00
wing328
8cff8fc55a update swagger-parser-version to 1.0.10 (removed snapshot) 2015-08-17 14:27:33 +08:00
wing328
90d5ce228a Merge pull request #1067 from Helmsdown/path-level-params
Codegen should honor path level parameters
2015-08-17 14:13:22 +08:00
wing328
d4ff25f0b3 fix variable name starting with number, make LOGGER protected 2015-08-17 10:43:03 +08:00
wing328
4163f07911 Merge pull request #1069 from geekerzp/python-httplib
[Python] Fix issues in python client
2015-08-16 15:03:16 +08:00
wing328
560fd5718d Merge pull request #1074 from wing328/php_improve1
[PHP] minor improvements
2015-08-16 14:59:43 +08:00
wing328
97580a8c45 Merge pull request #1070 from wing328/objc_readme_update
[Objc] minor wording change for readme based on feedback from developers
2015-08-16 14:59:27 +08:00
wing328
aee72d97c3 Merge pull request #1080 from wing328/update_pomxml
Update swagger-core-version to 1.5.4-SNAPSHOT
2015-08-16 00:22:54 +08:00
wing328
49ad008d7c update pom.xml 2015-08-16 00:14:24 +08:00
wing328
7a2c0a076a update readme, change default value, update pom 2015-08-16 00:03:19 +08:00
wing328
365f4bc0c0 beta release of flash generator 2015-08-15 23:56:01 +08:00
wing328
3478e053e1 add back flash generator 2015-08-15 18:12:14 +08:00
geekerzp
75536868f2 Add default api client in configuration class in objc client 2015-08-14 17:54:41 +08:00
geekerzp
84e8ef489c Update pom.xml 2015-08-14 11:55:22 +08:00
wing328
cffba0299a update core to 1.5.4 2015-08-14 11:19:04 +08:00
geekerzp
a6c07a8364 Change api client pool pattern to singleton pattern in objc client 2015-08-14 09:47:02 +08:00
David Biesack
b14edffc79 improve static html; add template guards for collections. Update -core dependency 2015-08-13 13:46:32 -04:00
wing328
b971aa7433 add example to config option, replace localhost with basePath 2015-08-13 23:27:59 +08:00
wing328
bb4311b7a2 minor wording change for objc readme based on feedback from developers 2015-08-12 20:53:15 +08:00
geekerzp
1c0eb60c71 Fix issues in python client 2015-08-12 11:19:29 +08:00
russellb337
a0eeb90a97 fixing bug 2015-08-11 12:50:19 -07:00
russellb337
38fccbd73d add @Generated to all Java class templates 2015-08-11 12:42:18 -07:00
russellb337
6fbb8ab1e0 add @Generated annotation to all Java class templates 2015-08-11 12:42:06 -07:00
russellb337
6044f0586e removing unnecessary getTypeDeclaration implementation in JaxRSServerCodegen 2015-08-11 09:19:22 -07:00
wing328
84ff5cfc87 Merge pull request #1064 from RMarinaro/develop_2.0
fix for #1061 java
2015-08-11 21:33:08 +08:00
wing328
96be2b196b Merge pull request #1037 from restlet/fix/nodejs_server_swagger
Fix swagger.json supporting file for the node.js server (fixes #652)
2015-08-11 21:28:06 +08:00
Hugo Wood
d93b404b23 Fix swagger.json supporting file for the node.js server (fixes #652) 2015-08-11 14:37:00 +02:00
wing328
be63776162 Merge pull request #1063 from geekerzp/objc-deserialize-bool
[Objc] Fix deserialize bool value issue
2015-08-11 10:18:52 +08:00
russellb337
ae4b4979a7 add defensive null check 2015-08-10 13:58:02 -07:00
russellb337
0a8fb1e532 codegen should honor path level parameters 2015-08-10 13:50:52 -07:00
wing328
e78844cb54 Merge pull request #1043 from marcospri/develop_2.0
Support for nested lists/maps for the python client
2015-08-10 18:30:02 +08:00
Ryan Marinaro
2eb0c8cea6 added a fix for #1061. The only problematic spot was the api.mustache file, although if more parameterized templates were to evolve in the other mustache files we could definitely add {{localVariablePrefix}} to those. For now I didn't want to add any extra noise to the template files which didn't need the prefixes. 2015-08-08 10:19:31 -04:00
geekerzp
2aaad03ab6 Fix the issue of bool deserialization in objc client 2015-08-08 15:13:13 +08:00
xhh
cb181e3480 Merge branch 'develop_2.0' into library-template-jersey2 2015-08-08 11:18:17 +08:00
xhh
b686b53259 Support overriding API/model templates with library template 2015-08-08 11:14:06 +08:00
wing328
f27eb7e0de Merge pull request #1058 from xhh/str-response-offset
Fix bug with truncated lone string responses for Android/Scala clients
2015-08-08 11:10:02 +08:00
wing328
36b7fb20b2 Merge pull request #1059 from geekerzp/objc-auth
[Objc] Fix issue about authentication
2015-08-08 09:37:47 +08:00
Ron
f2ef21e756 Merge pull request #1062 from swagger-api/dependencies-version-update
Update pom.xml
2015-08-07 17:32:28 -04:00
Ron
e57f1de21f Update pom.xml 2015-08-07 17:10:35 -04:00
xhh
a41361c959 Change the "--library" option into a config option 2015-08-07 22:16:32 +08:00
xhh
167e95bb3a Merge branch 'develop_2.0' into library-template-jersey2
Conflicts:
	modules/swagger-codegen/src/main/resources/Java/ApiClient.mustache
2015-08-07 21:18:27 +08:00
geekerzp
732a9eb64d Fix issue in Configuration-body.mustache in objc client 2015-08-07 18:31:07 +08:00
xhh
c7f595fc91 Fix bug with truncated lone string responses for Android/Scala clients 2015-08-07 10:40:42 +08:00
Tony Tam
29e8a8f573 Merge pull request #1057 from who/fix_1056
Fixing a bug with truncated lone string responses
2015-08-06 17:38:54 -07:00
Andrew B
d5b959d8cd Fixing a bug with truncated lone string responses 2015-08-06 16:54:24 -07:00
Andrew B
7a92f53b55 Adding some tests for PR 1051 2015-08-06 15:22:18 -07:00
tiffanyperumpail
4ac8a93022 Change swagger-parser-version to 1.0.9-SNAPSHOT 2015-08-06 11:29:59 -07:00
Marcos Prieto
cad2f961bd Undo unicode on sanitize method. Keep the PR on point 2015-08-06 10:21:56 +02:00
tiffanyperumpail
5328c00e8f Simplified enum by changing CodeGenStatus to an enum instead of a wrapper. Updated version of swagger-parser to 1.0.9. 2015-08-05 16:53:39 -07:00
tiffanyperumpail
1b31a01b76 Added CodeGenStatus class with Status enum 2015-08-05 16:18:24 -07:00
Andrew B
c67a6582fc Bumping the version of swagger-parser to 1.0.9 2015-08-05 15:58:54 -07:00
Andrew B
dc76887820 Fixing subClassed types so that they can use enums 2015-08-05 15:50:34 -07:00
xhh
4321339d4f Java petstore sample: move to "default" sub-folder, add jersey2 2015-08-05 17:28:45 +08:00
xhh
07f10a8abc Add command to display all library templates supported
for a specific language
2015-08-05 16:37:08 +08:00
xhh
4ba521a5c0 Add jersey2 library template for Java client 2015-08-05 15:37:26 +08:00
xhh
d88ec847ae Remave unused imports 2015-08-05 09:43:15 +08:00
xhh
7c16dfcf13 Rebuild Java petstore sample 2015-08-04 18:36:03 +08:00
xhh
aff21e5e6b Add a "library" option to generate with sub-template 2015-08-04 18:32:54 +08:00
Marcos Prieto
befacc41bd Support for nested dict/list
Checking for `startwith` instead of just `in` to correctly categorize
nested structures.
2015-08-04 11:51:38 +02:00
Marcos Prieto
edebbcb802 Support for unicode headers, ie support for urlib3.util.make_headers 2015-08-04 11:51:25 +02:00
xhh
bfb4629ab7 Java client: decouple JSON handling 2015-08-04 15:47:55 +08:00
Tony Tam
1007534575 fix for #1042, removed empty / when basePath is null 2015-08-03 16:47:51 -07:00
Rogercf
97d24a7119 Update DefaultCodegen.java
Fixed indentation
2015-08-03 19:50:29 -03:00
Rogercf
13038d2a12 Update DefaultCodegen.java
Replaced hardcoded "String" with property.items.baseType
2015-08-03 19:46:10 -03:00
Rogercf
c5dc070685 Update model.mustache
Fixed generating array of enums properties in the java template
2015-08-03 19:21:54 -03:00
Rogercf
a30b66beb1 Update DefaultCodegen.java
Setting the "items" field when the type is array and updating some values if the array is an array of enums
2015-08-03 19:20:51 -03:00
Rogercf
aff766b785 Update CodegenProperty.java
Added a "items" field to keep track of the inner type to be accessed in the mustache templates
2015-08-03 19:19:10 -03:00
xhh
112a7ec8c1 Java client: move form params handling to ApiClient 2015-08-03 18:33:42 +08:00
wing328
55be0330e3 Merge pull request #1039 from geekerzp/python-desciption
[Python] Fix issue in python client
2015-08-03 10:48:56 +08:00
wing328
fe83d18a09 Merge pull request #1026 from geekerzp/objc-deserializtion
[Objc] Fix deserialize nested map error
2015-07-31 16:17:11 +08:00
wing328
a6f8f9e4ff Merge pull request #1017 from herveDarritchon/develop_2.0
Defect (Issue #905) : Add code to be able to override the configPackage …
2015-07-31 16:05:17 +08:00
geekerzp
79c988616c Fix issue #1038 2015-07-31 16:01:45 +08:00
wing328
dc62f688d9 Merge pull request #1015 from tandrup/conditional-copy-from-parent
Conditional copy properties from parent
2015-07-31 15:56:48 +08:00
wing328
db10bd764b Merge pull request #1036 from wing328/csharp_add_back_dll
[C#] add back RestSharp and Newtonsoft.Json DLL
2015-07-31 15:56:21 +08:00
wing328
92208b4ec2 Merge pull request #987 from xhh/retrofit-form-field-naming
Retrofit: fix form field naming by using baseName
2015-07-31 09:09:09 +08:00
xhh
0ef4702aa8 Merge branch 'develop_2.0' into retrofit-form-field-naming
Conflicts:
	samples/client/petstore/retrofit/src/main/java/io/swagger/client/api/PetApi.java
2015-07-30 16:40:43 +08:00
wing328
cc358cf9ce Merge pull request #1032 from xhh/retrofit-string-resp
Retrofit template: return body string directly when failed to parse response body as JSON
2015-07-30 15:58:05 +08:00
xhh
a1e6908b65 Merge branch 'develop_2.0' into retrofit-string-resp 2015-07-30 15:02:02 +08:00
xhh
2d4c07a474 Fix typo 2015-07-30 15:01:51 +08:00
wing328
05f00013f1 add back csharp dll, update sample 2015-07-30 10:19:46 +08:00
wing328
bc528ef928 Merge pull request #1027 from adamholdenyall/patch-3
Catch all exceptions on Deserialize
2015-07-30 10:06:32 +08:00
Tony Tam
318a239976 Merge pull request #1031 from Toilal/pom-issues
Fix issues in POM configuration
2015-07-29 07:35:05 -07:00
Toilal
189962208e Update scala maven plugin and fix issues in POM configuration 2015-07-29 15:15:12 +02:00
wing328
bd28271b0b Merge pull request #1019 from geekerzp/python-refactor
[Python] Enhancements of python client
2015-07-29 17:39:58 +08:00
xhh
14b808a910 Retrofit template: return body string directly
when failed to parse response body as JSON, fixing unit test for
UserApi#loginUser
2015-07-29 17:10:49 +08:00
wing328
d345f8fae3 Merge pull request #967 from moander/feature/docker
Docker build script and Dockerfile
2015-07-29 15:36:08 +08:00
Ole Lensmar
26336356cf added generated samples for jaxrs and inflector 2015-07-28 14:56:23 -07:00
Ole Lensmar
9c3fad3040 fixed generated code to go to target/generated-sources, added maven-codegen-plugin to generated jaxrs project together with initial swagger definition, fixed overwrite flag to kick in only if file exists, fixed initial readme 2015-07-28 14:40:43 -07:00
moander
d396a0a0e4 Friendly error message when project is not built 2015-07-28 22:48:18 +02:00
Tony Tam
dc7c2a4bab updated name 2015-07-28 13:35:33 -07:00
Tony Tam
0b85ad464a Merge pull request #1028 from swagger-api/inflector-template
added template for the inflector
2015-07-28 10:31:40 -07:00
Ole Lensmar
c5d02fe98e added template for the inflector 2015-07-28 10:19:36 -07:00
adamholdenyall
a81e5096f5 Catch all exceptions on Deserialize
If you look at the source of NewtonSoft.Json, you'll see that DeserializeObject never throws an IOException. All exceptions should be caught in this method, just like Serialize.
2015-07-28 09:53:10 -05:00
wing328
52971e6aa9 Merge pull request #1018 from wing328/fix_empty_operationid
[All] Better exception handling for empty operationId (method name)
2015-07-28 17:39:19 +08:00
geekerzp
b2e0d83f2e Update objc client.
* Fix issue that list of primitive types deserialization.
* Add test cases for list of primitive types deserialization and nested list deserialization.
2015-07-28 17:21:10 +08:00
geekerzp
2be3414357 Update python client.
Add test case for nested list deserialization.
2015-07-28 15:23:44 +08:00
geekerzp
ea901bf1ce Update python client.
Add test case for nested dict deserialization.
2015-07-28 14:34:50 +08:00
geekerzp
8bd282acd6 Change parameter name key to identifier of
Configuration#get_api_key_with_prefix in python client.
2015-07-28 11:25:19 +08:00
geekerzp
b51ef77401 Remove #!/usr/bin/env python from python client 2015-07-28 11:25:19 +08:00
geekerzp
3265ec0f72 Refactor python client. 2015-07-28 11:25:19 +08:00
wing328
732e645042 Merge pull request #1022 from SparrowJang/develop_2.0
fixed a error rule for parsing `)`
2015-07-28 11:15:28 +08:00
geekerzp
cc45ff17cb Fix deserialize nested map error in objc client 2015-07-28 10:51:20 +08:00
wing328
b843b55339 Merge pull request #1001 from who/csharp_dotnet2_template
C# .Net 2.0 generator and template
2015-07-28 09:32:03 +08:00
Sparrow.jang
75711f954b fixed a bug for parsing ) error 2015-07-27 18:50:32 +08:00
SparrowJang
d0b5af31a5 Merge pull request #1 from swagger-api/develop_2.0
Develop 2.0
2015-07-27 18:47:40 +08:00
wing328
c01c06b198 Merge pull request #1004 from mhardorf/conf-file-maven-plugin
Add support for specifying configuration file in maven plugin
2015-07-27 18:30:09 +08:00
Mads Mætzke Tandrup
586f4c14e1 Merge remote-tracking branch 'upstream/develop_2.0' into conditional-copy-from-parent
# Conflicts:
#	modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptNodeClientCodegen.java
2015-07-27 11:30:47 +02:00
wing328
fe0e43f963 Merge pull request #1012 from tandrup/combine-ts-node
Combine TypeScript Node output and beautify Angular output
2015-07-27 17:24:34 +08:00
wing328
47abfe7079 Merge pull request #1014 from 2rs2ts/module-generation-readme-path-fix
Fix path in instructions for making your own codegen modules
2015-07-27 17:12:13 +08:00
Mads Mætzke Tandrup
d0a3def441 Adding npm run clean command to clean the sample dir 2015-07-27 11:02:38 +02:00
xhh
7af5db3565 Rebuild Ruby petstore sample 2015-07-27 16:37:26 +08:00
xhh
47c8597d36 Ruby: move request/response logic to api_client 2015-07-27 16:34:51 +08:00
Mads Mætzke Tandrup
64f2e85608 Update TypeScript angular sample 2015-07-27 10:20:55 +02:00
Mads Mætzke Tandrup
09ccf12a3b Update Typescript node samples 2015-07-27 10:19:12 +02:00
Mads Mætzke Tandrup
fde5c60cb0 Support authentication from swagger in TypeScript Node 2015-07-27 10:18:38 +02:00
Mads Mætzke Tandrup
b18cc5e0de Include header parameters 2015-07-27 10:13:36 +02:00
wing328
6d8dea5dfc better exception handling for empty method name 2015-07-27 12:07:35 +08:00
wing328
a8f580032f fix empty operationId in java codegen 2015-07-27 11:39:37 +08:00
wing328
d0baa48fcd fix empty operationId 2015-07-27 11:21:51 +08:00
wing328
31200acc1a Merge pull request #998 from geekerzp/objc-date
[Objc] Enhancements of objective-c client
2015-07-27 10:41:42 +08:00
xhh
5bfae7b78c Ruby: use a default ApiClient when not provided 2015-07-27 10:32:51 +08:00
geekerzp
3b9b3e82f9 Update comments in objc client 2015-07-27 10:29:27 +08:00
wing328
783a4c0572 Merge pull request #1016 from ngs/swift-podspec-version
[Swift] Add version to Podspec template
2015-07-27 08:33:44 +08:00
wing328
9ce824d720 Merge pull request #1007 from ngs/swift-alamofire-1.3.0
[Swift] Support file upload with Alamofire 1.3.0
2015-07-27 08:29:34 +08:00
Mads Mætzke Tandrup
dee828622a Test file upload in sample client 2015-07-26 14:26:01 +02:00
Hervé Darritchon
5c0ae7babe Defect (PR #905) : Add code to be able to override the configPackage in the spring mvc template. 2015-07-26 12:11:29 +02:00
Mads Mætzke Tandrup
02da80e837 Update sample with small test script 2015-07-26 08:22:32 +02:00
Mads Mætzke Tandrup
e41a475335 Update typescript node sample 2015-07-25 22:05:43 +02:00
Mads Mætzke Tandrup
fea8e680df Fix TypeScript node file upload 2015-07-25 22:05:29 +02:00
Mads Mætzke Tandrup
b0f6b49595 Fix TypeScript Map type 2015-07-25 22:02:06 +02:00
Atsushi Nagase
b56da43953 [Swift] Add version to Podspec template 2015-07-26 03:19:33 +09:00
Atsushi Nagase
979a704310 [Swift] Update Alamofire to 1.3 in Podspec 2015-07-26 03:01:11 +09:00
Atsushi Nagase
5dcdadb751 [Swift] tweak conditions
336bb87b53 (commitcomment-12318006)
2015-07-26 02:59:43 +09:00
Atsushi Nagase
f98974190e [Swift] Support file upload with Alamofire 1.3.0
refs:

- https://github.com/Alamofire/Alamofire/milestones/1.3.0
- https://github.com/Alamofire/Alamofire/pull/539
2015-07-26 02:59:43 +09:00
wing328
6719a6cc74 Merge pull request #1013 from SparrowJang/develop_2.0
added a utf8 declaration to fix #1011 issue
2015-07-25 23:15:04 +08:00
Mads Mætzke Tandrup
3f9b2a9678 Adding build system for typescript AngularJS sample 2015-07-25 14:11:10 +02:00
Mads Mætzke Tandrup
bbf0ce8c80 Adding README for sample 2015-07-25 13:57:45 +02:00
Mads Mætzke Tandrup
9fc8c770d3 Adding build system for poetaster typescript node sample 2015-07-25 13:55:30 +02:00
wing328
8f2c99f0af Merge pull request #1005 from mhardorf/sort-by-inheritance
Sort model objects by inheritance
2015-07-25 18:18:29 +08:00
Mads Mætzke Tandrup
81f5cc47e7 Rename property to be more language specific 2015-07-25 12:03:17 +02:00
wing328
db37c02ebd Merge pull request #1010 from onovy/develop_2.0
[Python] Allow to set cookie in python(3) API constructor.
2015-07-25 17:03:11 +08:00
wing328
fc71b23464 Merge pull request #1006 from ngs/podspec
[Swift] Add podspec template
2015-07-25 16:46:13 +08:00
Mads Mætzke Tandrup
e924cec595 Conditional copy properties from parent.
Pull request #946 broke the TypeScript generation with inheritance where a superclass defined an enum. This makes it up to each language to decide the behavior appropriate for the language.
2015-07-25 07:45:08 +02:00
Andrew Garrett
90f152da75 Fix path in instructions for making your own codegen modules 2015-07-24 11:44:30 -07:00
Sparrow.jang
713ae4a957 added a utf8 declaration to fix #1011 issue 2015-07-24 22:40:24 +08:00
Ondrej Novy
50736458d0 Allow to set cookie in python(3) API constructor. 2015-07-24 11:48:43 +02:00
Mads Mætzke Tandrup
34b341874c Include api and model package in angular 2015-07-24 11:05:36 +02:00
Mads Mætzke Tandrup
7a1f3dbf9e Fix angular output to go to one dir to make it build 2015-07-24 10:23:07 +02:00
Mads Mætzke Tandrup
3723a9ba2d Updating typescript samples 2015-07-24 10:22:41 +02:00
Mads Mætzke Tandrup
bc8eae838c Beautify typescript angular output 2015-07-24 10:14:42 +02:00
Mads Mætzke Tandrup
88ed496b44 Extract abstract class for TypeScript generators 2015-07-24 10:03:02 +02:00
Mads Mætzke Tandrup
646da19c7d Combine TypeScript node output in one file and add missing require statements 2015-07-24 09:48:49 +02:00
Atsushi Nagase
80b5363202 [Swift] add cliOptions for podspec
```
podSource
    Source information used for Podspec

podVersion
    Version used for Podspec

podAuthors
    Authors used for Podspec

podSocialMediaURL
    Social Media URL used for Podspec

podDocsetURL
    Docset URL used for Podspec

podLicense
    License used for Podspec

podHomepage
    Homepage used for Podspec

podSummary
    Summary used for Podspec

podDescription
    Description used for Podspec

podScreenshots
    Screenshots used for Podspec

podDocumentationURL
    Documentation URL used for Podspec
```
2015-07-24 16:27:28 +09:00
Atsushi Nagase
071fc2ded6 [Swift] Add podspec template 2015-07-23 22:22:45 +09:00
Martin Hardorf
992b0c7e5e Sort model objects by inheritance 2015-07-23 13:11:53 +02:00
Martin Hardorf
037f59d0df Add support for specifying configuration file in maven plugin 2015-07-23 13:10:59 +02:00
geekerzp
5a235c642a Update comments of objc client 2015-07-23 18:03:19 +08:00
geekerzp
08ea05f7a1 Update objc client.
* Add comments in SWGConfiguration.h
* Change `Date` to `date` in ObjcClientCodegen.java
* Update comments in model body template
2015-07-23 16:03:38 +08:00
Andrew B
e301d9d00e Adding sample generator and output 2015-07-22 11:31:29 -07:00
Andrew B
8a399ee1cb Renaming the C# .net 2.0 to be more generic 2015-07-22 11:13:13 -07:00
Andrew B
4e5b9e4af3 Renaming the C# .net 2.0 to be more generic 2015-07-22 11:13:08 -07:00
geekerzp
37c79525f7 Update model body template in objc client.
* Add some comments.
2015-07-22 18:31:50 +08:00
geekerzp
f9ad16e7aa Update objc client.
* Add test cases for deserialization.
* Pretty print model infomation.
2015-07-22 17:45:31 +08:00
wing328
cde8d7ba4c Merge pull request #984 from geekerzp/python-enum
[Python] Support enum for model property
2015-07-22 16:48:34 +08:00
xhh
a75b05b952 Update tests with latest code 2015-07-22 16:02:18 +08:00
geekerzp
bd6fa6a2e4 Update PetApiTests#test_find_pet_by_tags test case of python client 2015-07-22 15:50:40 +08:00
xhh
609d915541 Rebuild Ruby petstore sample 2015-07-22 15:39:48 +08:00
xhh
948cdb3a75 Done with API client structure for Ruby client 2015-07-22 15:37:29 +08:00
geekerzp
b9287cf417 Add to_str method in python client and add test cases. 2015-07-22 11:00:51 +08:00
Andrew B
df93ca80f7 Fixing an issue that was causing incorrect JSON key names 2015-07-21 15:49:37 -07:00
Andrew B
0247f0774d Updating the mono compile script to target .net 2 2015-07-21 11:12:17 -07:00
wing328
37dbd6e4cd Merge pull request #992 from who/develop_2.0
[C#] Fixing a mono compilation error
2015-07-21 21:43:06 +08:00
wing328
34db9814d8 Merge pull request #994 from wing328/fix_swagger_parser_version
Fix compilation error with a newer swagger parser
2015-07-21 17:39:24 +08:00
xhh
4ecc757bea More on API client structure for Ruby client 2015-07-21 17:07:41 +08:00
wing328
cf7082c2e6 fix swagger parser version to use 1.0.9-SNAPSHOT 2015-07-21 16:54:14 +08:00
wing328
6b4f810fec Merge pull request #981 from Edubits/develop_2.0
[Swift] Support use in Framework
2015-07-21 16:35:36 +08:00
Tony Tam
f7a07f72b8 added resolve option for #903 2015-07-20 23:31:49 -07:00
Andrew B
a6012ecf41 Initial commit of the Unity3D C# .net 2.0 generator 2015-07-20 23:26:59 -07:00
Andrew B
0b7b57bf4d [C#] Fixing a mono compilation error 2015-07-20 21:22:49 -07:00
wing328
498a400d4e Merge pull request #988 from wing328/csharp_update_unit_test
[C#] Updated unit test and minor change to conform style guide
2015-07-21 12:08:15 +08:00
wing328
405e5a7a35 Merge pull request #946 from xhh/model-all-of
Copy properties from parent models defined with allOf
2015-07-21 11:41:24 +08:00
xhh
3de42afed3 Implement API client structure for Ruby client 2015-07-21 11:37:46 +08:00
wing328
f1304022b0 Merge pull request #852 from tomtit/issue837
Fixed #837: Generation of default values for complex arrays and maps has been improved.
2015-07-21 11:28:43 +08:00
wing328
fc7f2a92d0 Merge pull request #878 from lugaru1234/issue798
Fixed #798: original jar generation has been fixed.
2015-07-20 21:50:51 +08:00
wing328
27113cf326 Merge pull request #859 from lugaru1234/issue831
Fixed #831: skipOverwrite flag has been added
2015-07-20 21:14:33 +08:00
wing328
7179c15158 Merge pull request #966 from wing328/nodejs_fix_summary
[NodeJS] Add back summary and description to the endpoint definition
2015-07-20 11:12:15 +08:00
wing328
ba72e7344a remove nuget pacakges 2015-07-20 10:48:20 +08:00
wing328
596bde2ef6 remove leading space for path variable, update unit test 2015-07-20 10:43:08 +08:00
wing328
a863e538a8 Merge pull request #943 from psmay/develop_2.0-RestSharp-path-params
[C#] Use RestSharp's mechanism for path parameters in URL templates
2015-07-20 10:16:01 +08:00
xhh
a134b5ca76 Retrofit: fix form field naming by using baseName 2015-07-20 10:12:36 +08:00
Peter S. May
1f7664f81e Fixed case typo in previous edit. 2015-07-18 19:38:20 -04:00
geekerzp
68820e5a80 Update comments of api template of python client 2015-07-18 15:54:00 +08:00
geekerzp
195c71da37 Update comments of python client 2015-07-18 15:35:12 +08:00
geekerzp
ddfa713f55 Update wording of comment in api template of python client 2015-07-18 15:22:39 +08:00
geekerzp
c9889c5baf Update api template of python client 2015-07-18 15:03:55 +08:00
geekerzp
60d6cd744a Format python client using pep8 2015-07-18 14:30:19 +08:00
Peter S. May
1072c9d017 Merge remote-tracking branch 'upstream/develop_2.0' into develop_2.0-RestSharp-path-params
Conflicts:
	modules/swagger-codegen/src/main/resources/csharp/ApiClient.mustache
	modules/swagger-codegen/src/main/resources/csharp/api.mustache
2015-07-17 21:45:54 -04:00
Peter S. May
4bc4a8aed1 WIP pre-adding new sources for ApiClient and api 2015-07-17 21:09:05 -04:00
Robin Eggenkamp
0ad7005547 [Swift] Add support for basic form data 2015-07-16 17:56:20 +02:00
geekerzp
3993ef3dc8 Update python codegen.
Remove leading underscore.
2015-07-16 18:58:23 +08:00
geekerzp
8746f1544b Merge branch 'develop_2.0' into python-enum 2015-07-16 17:27:17 +08:00
geekerzp
f0e09ae33a Add enum support for model property of python client 2015-07-16 17:24:42 +08:00
wing328
e879268043 Merge pull request #941 from geekerzp/develop_2.0_python_async
[Python] Support asynchronous request in python client
2015-07-16 10:47:02 +08:00
geekerzp
33561fa159 Support date type in python client 2015-07-16 10:11:27 +08:00
Robin Eggenkamp
78760907a5 [Swift] Support use in a Framework
To support use in a Framework set access level of relevant classes,
methods and members to public
2015-07-15 18:22:36 +02:00
Robin Eggenkamp
30eb1f1075 Fix bug in api name placeholder 2015-07-15 18:20:05 +02:00
wing328
5c9afbafb2 Merge pull request #918 from geekerzp/develop_2.0_objc_issue
[Objc] Enhancements and Issue fix
2015-07-15 18:20:40 +08:00
geekerzp
0092d8a63b Update unit tests of objc client 2015-07-15 18:11:04 +08:00
wing328
3c6f07cbe3 Merge pull request #975 from wing328/sinatra_fix_tag
[Sinatra] Fixed outdated tag in mustache template
2015-07-15 17:50:25 +08:00
geekerzp
95cb5f73a3 Remove SWGFile from objc client 2015-07-15 17:10:24 +08:00
geekerzp
02f6c805af Update integration test of objc client 2015-07-15 17:10:24 +08:00
geekerzp
13d74f01a2 Add logging in objc client 2015-07-15 17:10:24 +08:00
geekerzp
8877be82f0 Update api-body.mustache of objc client 2015-07-15 17:10:24 +08:00
geekerzp
a25d3f2543 Update README file of objc client 2015-07-15 17:10:23 +08:00
geekerzp
3f017af464 Update objc client.
Replace SWGFile with NSURL.
2015-07-15 17:10:23 +08:00
geekerzp
0e56d0d1c6 Support file downloading in Objc codegen. 2015-07-15 17:10:23 +08:00
geekerzp
f48a7f20e6 Update config-help of objc cli 2015-07-15 17:10:23 +08:00
geekerzp
9a15ced211 Supoort customize classPrefix in objc client. 2015-07-15 17:10:23 +08:00
geekerzp
e244d20152 Remove lib files. 2015-07-15 17:10:23 +08:00
geekerzp
412b6b3839 Update objc client.
* Package objc client using cocoapods.
* Support cli options.
2015-07-15 17:08:45 +08:00
geekerzp
0a652a3d13 Fix issue#896 https://github.com/swagger-api/swagger-codegen/issues/896 2015-07-15 17:08:44 +08:00
geekerzp
4d302683f3 Update logging of python client 2015-07-15 15:58:45 +08:00
geekerzp
517717958d Update doc string of RESTClientObject#agent method of python client 2015-07-15 15:27:15 +08:00
geekerzp
b42ead3c0f Replace urllib3.util.url.parse_url with urllib3.util.parse_url 2015-07-15 15:27:14 +08:00
geekerzp
8a3c64aa41 Add logging and debug report for python client. 2015-07-15 15:27:14 +08:00
geekerzp
d97b0984cb Update ApiClient of python client.
Add docstring for method call_api.
2015-07-15 15:25:32 +08:00
geekerzp
0e8cf70dc4 Fix typo 2015-07-15 15:25:32 +08:00
geekerzp
88e5860d9b support asynchronous request in python client 2015-07-15 15:25:31 +08:00
wing328
157b07e552 Merge pull request #912 from gabrielar/develop_2.0-pull-requests/add-pathPrefix-key-to-operations
Add a `pathPrefix` key to the `operations` key
2015-07-15 10:26:13 +08:00
wing328
1f097ee1a1 Merge pull request #977 from who/develop_2.0
[PHP] Support for customizing namespace and Composer fields
2015-07-15 10:06:26 +08:00
wing328
7a5fd24785 Merge pull request #979 from xhh/auth-methods-fix
Fix NullPointerException for authMethods
2015-07-15 09:50:53 +08:00
wing328
59258be3dd Merge pull request #978 from tkQubo/fix/swift_bug
[Swift] Fix a bug
2015-07-15 09:42:39 +08:00
xhh
e5bdb3a0c1 Fix NullPointerException for authMethods 2015-07-15 09:21:09 +08:00
wing328
dd35c672f0 Merge pull request #935 from geekerzp/python-file-response
[Python] Support file downloading for Python API client
2015-07-14 17:45:11 +08:00
geekerzp
18ea21087f Update README file of python client 2015-07-14 17:34:38 +08:00
geekerzp
746a55be73 Update README file of python client 2015-07-14 17:15:24 +08:00
wing328
7242a664e3 Merge pull request #923 from xhh/ruby-debug
[Ruby] Some improvements & cleaning-up on Ruby API client
2015-07-14 16:34:41 +08:00
geekerzp
9f76acbbd7 Update README file of python client 2015-07-14 15:42:01 +08:00
geekerzp
af67353022 Update integration test of python client 2015-07-14 15:38:23 +08:00
kubo_takaichi
ecf4082d68 Fix bug in api name placeholder and api url 2015-07-14 13:41:28 +09:00
wing328
5821e41185 Merge pull request #927 from wing328/csharp_file_response
[C# ] Add file response
2015-07-14 12:34:51 +08:00
xhh
822e640e0a Merge branch 'develop_2.0' into ruby-debug
Conflicts:
	modules/swagger-codegen/src/main/resources/ruby/swagger/configuration.mustache
	modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache
	samples/client/petstore/ruby/lib/petstore/swagger/request.rb
	samples/client/petstore/ruby/lib/swagger_client.rb
	samples/client/petstore/ruby/lib/swagger_client/swagger/configuration.rb
2015-07-14 12:33:17 +08:00
geekerzp
30925b7800 Update pom.xml of python client 2015-07-14 10:28:36 +08:00
geekerzp
bb570d7efa Update integration-test of python client 2015-07-14 09:43:59 +08:00
geekerzp
c88c85a317 Enhancements intergration-test of python client 2015-07-14 09:39:19 +08:00
geekerzp
23dfac0194 Update deserialization of python client.
Return None if deserialize data is None.
2015-07-14 09:39:19 +08:00
geekerzp
b99f006861 Update Python client.
Throw ApiException if fail to parse string to datetime.
2015-07-14 09:39:19 +08:00
geekerzp
80d1deb2dd Update unit tests of Python client.
Add more test cases for deserialization.
2015-07-14 09:39:19 +08:00
geekerzp
2912ee8ae1 Update deserialize response of Python client. 2015-07-14 09:39:18 +08:00
geekerzp
6df6c079ee Support file downloading in Python codegen. 2015-07-14 09:39:18 +08:00
Andrew B
f4226474e2 Updating command-line parameter description for artifactVersion 2015-07-13 15:02:14 -07:00
Andrew B
b70a0bf0c6 Fixing an issue with errant namespace in the sample petstore 2015-07-13 14:56:33 -07:00
Andrew B
7dca394eca Support for customizing Composer package and namespaces 2015-07-13 14:46:56 -07:00
wing328
80303b524d Merge pull request #884 from xhh/params-order
Make sure "required" parameters are placed in front of "optional" parameters
2015-07-13 17:51:22 +08:00
wing328
6e7c70f247 fix sinatra outdated tag, use version tag 2015-07-13 17:43:18 +08:00
xhh
715c56afcc Rebuild petstore PHP sample with updated order on params 2015-07-13 16:51:19 +08:00
xhh
aad05c4dee Merge branch 'develop_2.0' into params-order
Conflicts:
	samples/client/petstore/php/SwaggerClient-php/lib/PetApi.php
	samples/client/petstore/php/SwaggerClient-php/lib/StoreApi.php
	samples/client/petstore/php/SwaggerClient-php/lib/UserApi.php
2015-07-13 16:48:19 +08:00
wing328
3f9d1607b6 Merge pull request #926 from wing328/php_support_file_response
[PHP] support "file" response
2015-07-13 15:51:20 +08:00
wing328
879c1b921c update php petstore sample 2015-07-13 15:31:20 +08:00
xhh
fb0b7d622f Merge branch 'develop_2.0' into params-order
Conflicts:
	modules/swagger-codegen/src/main/resources/php/api.mustache
2015-07-13 15:30:06 +08:00
wing328
f154e407d2 update coding style based on CodeSniffer 2015-07-13 15:26:12 +08:00
wing328
44705b566d add default version for package 2015-07-13 15:24:12 +08:00
wing328
71a22141bf add enum support for model property 2015-07-13 15:24:11 +08:00
wing328
38149173ff revert petstore json, fixed test case 2015-07-13 15:21:39 +08:00
wing328
2258a4632d fix test.php, fix default configuration 2015-07-13 15:21:39 +08:00
wing328
259b31ccd4 temporary folder setting 2015-07-13 15:21:38 +08:00
wing328
7f31da734d add file response for php, update test case 2015-07-13 15:09:09 +08:00
wing328
fcd0b31d7d add file response for php 2015-07-13 15:09:09 +08:00
wing328
4c2df94ec7 Merge pull request #953 from bletail/develop_2.0
Python/Python3 datetime and date type fixed
2015-07-13 15:05:13 +08:00
wing328
38760d2aa1 Merge pull request #915 from xhh/ruby-file-response
[Ruby] Support file downloading for Ruby API client
2015-07-13 14:50:40 +08:00
wing328
f6174051cb Merge pull request #931 from cbornet/oauth_support
generate oauth2 fields in the data for the templates
2015-07-13 14:39:14 +08:00
wing328
68915eeb8f Merge pull request #968 from mhardorf/develop_2.0
Cleaned up TypeScript code generator
2015-07-13 12:16:11 +08:00
wing328
1434691927 Merge pull request #916 from wing328/fix_optional
[Perl, Python AsyncScala] Fix optional tag in the template
2015-07-13 11:53:58 +08:00
wing328
b46efd839d Merge pull request #914 from webjunkie/patch-1
Optional is used in PHP template although not available
2015-07-13 11:52:55 +08:00
wing328
c7f8f0171b Merge pull request #919 from wing328/fix_java_android_path_issue
[Java, Android] Fix path variable name
2015-07-13 11:51:45 +08:00
wing328
045a3b44c1 Merge pull request #901 from tkQubo/feature/swift_develop_2.0
[Swift] Some fixes for SwiftGenerator for develop 2.0
2015-07-13 11:51:07 +08:00
wing328
6c85fc285a Merge pull request #959 from dilipkrish/develop_2.0
Updated the swagger-codegen sample for generating the service side stubs
2015-07-13 10:14:05 +08:00
Dilip Krishnan
7cc9581f04 Updated the mustache template to remove the spurious import
Also regenerated the spring-mvc server sample
2015-07-12 20:56:36 -05:00
Dilip Krishnan
9283249963 Updated the swagger-codegen sample for generating the service side stubs
for spring mvc using springfox implementation
2015-07-12 20:56:31 -05:00
Tony Tam
461f556289 Merge pull request #893 from sudohippie/develop_2.0-fork
Android & Java template modifications to check collectionFormat when creating query parameters
2015-07-09 10:11:54 -07:00
Martin Hardorf
e3d3641b96 Removed unused import 2015-07-09 14:57:40 +02:00
Martin Hardorf
7e8f8e85d7 Changed default name of the modelPackage 2015-07-09 14:55:15 +02:00
Martin Hardorf
abc7100a17 Removed unused code from the api classes 2015-07-09 14:54:36 +02:00
Morten Andersen
661b9d6315 Docker generate example 2015-07-09 12:58:33 +02:00
moander
a21c2be877 Set executable flag 2015-07-09 10:39:35 +00:00
moander
5c29cbf33d Build and run script for docker 2015-07-09 12:33:43 +02:00
Martin Hardorf
d3bc347e31 Changed base path to use contextPath 2015-07-09 10:34:39 +02:00
wing328
1f35f58841 add back summary and description to nodejs swagger.json 2015-07-09 14:05:08 +08:00
xhh
a51d71e728 Fix syntax error when there are no authMethods 2015-07-09 10:48:16 +08:00
wing328
b8c06505f6 use fully qualified name for Task 2015-07-09 10:21:55 +08:00
moander
80731633b4 Created a Dockerfile 2015-07-09 01:22:06 +02:00
Tobias Pfeifer
4c16366f45 fix SpringMVCServerCodegen for maps as in JavaClientCodegen 2015-07-08 15:45:38 +02:00
Martin Hardorf
4133cae2bc Fixed mustache to handle non-required parameters 2015-07-08 11:19:25 +02:00
Martin Hardorf
f6a1af2831 Changed maps to any and DateTime to Date 2015-07-08 11:17:06 +02:00
xhh
a24fee00cb Support primitive response in Ruby client 2015-07-08 16:46:31 +08:00
xhh
f42f329ace Parse "date" as Date in Ruby client 2015-07-08 13:10:28 +08:00
xhh
6fd2ccabee Merge branch 'develop_2.0' into ruby-debug 2015-07-08 12:38:21 +08:00
DariusM
20c7932df4 Python /python3 datetime and date fixed 2015-07-07 13:00:28 +02:00
wing328
e49fe7a12f better style for model, add <value> to all properties 2015-07-07 16:25:33 +08:00
wing328
b1b0e28f59 update c# style 2015-07-06 23:06:28 +08:00
Tony Tam
dfd8d5ef64 updated to latest release version 2015-07-06 04:55:12 -07:00
wing328
94768d44b5 better type comparision 2015-07-06 13:55:33 +08:00
wing328
3b1999af4b update csharp sample 2015-07-06 11:24:59 +08:00
wing328
7e4a82bcfb add readme 2015-07-06 11:18:05 +08:00
wing328
f823c0e26a update newtonsoft json 2015-07-06 11:03:36 +08:00
xhh
bf32777b67 Fix NullPointerException in tests, improve usage to addVars 2015-07-03 18:07:34 +08:00
wing328
987a61640b fix file upload issue. add error handling for status code 0 2015-07-03 17:39:27 +08:00
xhh
66d16cfeaf Validate parameter against allowed values (enum) 2015-07-03 16:46:23 +08:00
xhh
0bf4163389 Copy properties of intermediate (interface) models 2015-07-03 15:08:37 +08:00
xhh
b61a400d91 Copy properties of parent model to model with allOf
Also fix #936
2015-07-03 15:08:37 +08:00
wing328
55827fe516 fix model import for csharp 2015-07-03 14:20:54 +08:00
wing328
5c888ad039 better method comment 2015-07-03 13:55:51 +08:00
wing328
d7d6ba957e fix comment and use 4-space indentation 2015-07-03 11:45:31 +08:00
wing328
57b54d8ad7 update code style for apiclient, configuration and apiexception 2015-07-03 10:36:21 +08:00
Peter S. May
4b896c759c [C#] Use RestSharp's mechanism for path parameters in URL templates
Previously, a simple find-and-replace had been used to substitute path parameters into the path. Among other omissions, this resulted in special characters such as `/` being left unescaped.

The RestSharp request object, as it turns out, expects a path template in the same format as provided by Swagger (with param names in braces), to be filled in using `AddParameter()`. In this edit, the code now uses this mechanism. The form parameter values are now passed to `CallApi*()` as a `Dictionary<String, String>`, where they are added to the request before submission. Since this was already how query and form parameters (etc.) were implemented, the resulting code is more consistent with itself than before.
2015-07-02 15:33:30 -04:00
Ole Lensmar
aba755d3de Merge pull request #940 from xhh/jax-rs-classname
Sanitize API class name in Jax RS server codegen
2015-07-02 11:38:10 +02:00
xhh
fe35675168 Allow numbers for classname
and remove spaces
2015-07-02 17:15:53 +08:00
xhh
d825b96720 Sanitize API class name in Jax RS server codegen 2015-07-02 12:00:18 +08:00
wing328
422da698f6 import model only if it has import for c# 2015-07-02 11:18:41 +08:00
wing328
488e604207 use stream for file 2015-07-01 21:37:48 +08:00
xhh
846d282ba0 Add helper methods for last response 2015-07-01 18:48:31 +08:00
xhh
6f1dd5ce35 Store last response in a thread-safe way 2015-07-01 17:37:16 +08:00
xhh
108b2241c0 Validate model property against allowed values (enum)
when present with attribute setters
2015-07-01 17:18:29 +08:00
wing328
4d6dbf7d92 show return in doc only if it has a return 2015-07-01 15:16:28 +08:00
Nadezhda Makarkina
eca827613d Fixed #831: skipOverwrite flag has been added 2015-06-30 17:58:35 +03:00
wing328
2e76b56f30 revert file to String, add test case for upload file 2015-06-30 17:50:22 +08:00
wing328
f290de95dd update parameter name to camelize lower 2015-06-29 23:14:00 +08:00
wing328
59987a54a9 fix deserialization of string and other primitive 2015-06-29 22:16:38 +08:00
cbornet
2d59c5d190 generate oauth2 fields in the data for the templates
Fixes #347
2015-06-29 13:39:39 +02:00
wing328
9726ada8d1 fix return type and tempfolder 2015-06-29 15:30:34 +08:00
wing328
76ece5a4eb add file response support for c# (passed test cases) 2015-06-29 12:17:49 +08:00
kubo_takaichi
91af76cf41 Use CLI option 2015-06-27 23:24:49 +09:00
kubo_takaichi
65af735d6c Merge commit '4143e286374bdd384c39a68df1f8f3a3eb58e6a4' into feature/swift_develop_2.0 2015-06-27 21:19:32 +09:00
wing328
30bc58f6ff Merge branch 'fix_optional' of https://github.com/wing328/swagger-codegen into fix_optional 2015-06-26 23:57:06 +08:00
wing328
3eca940e7d fix perl and asyncscala optional tab 2015-06-26 23:56:20 +08:00
wing328
38d62d768a fix optional for python, python3 2015-06-26 23:56:20 +08:00
xhh
1de6952279 Support customizing default headers via config option
for example:

    config.default_headers['X-MY-HEADER'] = 'my-header-value'
2015-06-26 19:09:20 +08:00
xhh
54d6a7e19c Merge branch 'develop_2.0' into ruby-file-response 2015-06-26 17:44:37 +08:00
xhh
fafddbf040 Fix naming in specs 2015-06-26 17:16:38 +08:00
xhh
d8b0cb739f Add config file for bin/ruby-petstore.sh
to rename swagger_client to petstore
2015-06-26 17:15:14 +08:00
xhh
2d3d35cfd7 Rebuild Ruby petstore client 2015-06-26 16:37:58 +08:00
xhh
8c10e4f2b0 Remove unused code 2015-06-26 16:06:32 +08:00
xhh
0ac1ef266f Avoid more monkey-patching 2015-06-26 16:04:18 +08:00
xhh
327128dbba Fix "date" type deserialization 2015-06-26 15:57:46 +08:00
xhh
16e80c65d7 Avoiding monkey-patching in Ruby API client 2015-06-26 15:56:59 +08:00
xhh
40c9f05536 Merge branch 'develop_2.0' into ruby-debug 2015-06-26 10:38:58 +08:00
wing328
091e76703c update sample 2015-06-26 10:35:50 +08:00
wing328
6a24b328e3 fix variable name in path 2015-06-26 10:30:12 +08:00
Tony Tam
4143e28637 Merge branch 'wing328-csharp_add_cli_support' into develop_2.0 2015-06-25 11:55:41 -07:00
Tony Tam
31efefe0b9 Merge branch 'csharp_add_cli_support' of ssh://github.com/wing328/swagger-codegen into wing328-csharp_add_cli_support 2015-06-25 11:54:30 -07:00
Tony Tam
e60bd564cb Merge pull request #864 from geekerzp/python-cli-option
[Python] Enabling cli config options for python generator
2015-06-25 11:53:29 -07:00
Tony Tam
69b75bb1af Merge pull request #885 from mhardorf/develop_2.0
Added support for TypeScript generation for AngularJS and Node.js
2015-06-25 11:53:21 -07:00
Tony Tam
1fb796f14d Merge pull request #891 from who/develop_2.0
Replacing getClientResponseStatus() with getStatusInfo()
2015-06-25 11:53:10 -07:00
Tony Tam
e996498a24 Merge pull request #913 from xhh/scala-warnings
[Scala] Fix warnings and upgrade jersey for Scala client
2015-06-25 11:52:57 -07:00
Tony Tam
c3d1367e7c Merge pull request #894 from wing328/csharp_add_nunit
[C#] Add NUnit test
2015-06-25 11:52:19 -07:00
Tony Tam
69eae7d35b merged 2015-06-25 10:23:05 -07:00
Tony Tam
162d1d1f98 merged 2015-06-25 10:21:38 -07:00
Tony Tam
07d5365c5c merged from #902, rebuilt client 2015-06-25 10:17:28 -07:00
Tony Tam
f1239aba6c Merge pull request #908 from wing328/fix_php_file_sep
[PHP] Fix regular expression in toPackagePath
2015-06-25 10:10:30 -07:00
Tony Tam
37620518e7 Merge pull request #892 from wing328/add_sinatra
[Ruby] Add back Sinatra tempates
2015-06-25 10:10:22 -07:00
William Cheng
9d739a44cd update python test case 2015-06-25 21:47:00 +08:00
wing328
18ac6e8aae fix perl and asyncscala optional tab 2015-06-25 23:10:25 +08:00
wing328
8cce7ac053 fix optional for python, python3 2015-06-25 22:40:14 +08:00
xhh
e6e1db2064 Support looser format when detecting filename 2015-06-25 16:26:04 +08:00
xhh
ceafbcc97f Add config option for file downloading folder. Log about file downloading 2015-06-25 16:07:02 +08:00
xhh
f3a0f464f7 Support file downloading in Ruby generator 2015-06-25 15:35:48 +08:00
Raghav Sidhanti
1af23fb751 Unit tests for Android and Java parameterToPairs method 2015-06-24 11:55:03 -07:00
Raghav Sidhanti
ea76f34de5 Merge branch 'develop_2.0' of https://github.com/swagger-api/swagger-codegen into develop_2.0-fork 2015-06-24 11:25:32 -07:00
Julian Bez
8ce3823698 Change to not required 2015-06-24 16:34:32 +02:00
Julian Bez
644231b915 Change optional to required 2015-06-24 16:32:49 +02:00
xhh
621e3e7b1a Add comments for some configuration options 2015-06-24 15:57:01 +08:00
wing328
6aac24398a update model to support inheritance (#879) 2015-06-24 14:34:05 +08:00
xhh
545fb52b7d Merge branch 'develop_2.0' into ruby-debug 2015-06-24 14:10:47 +08:00
Ole Lensmar
8e6c0f96fb updated documentation and removed java-specific parameters from general configuration 2015-06-24 07:31:10 +02:00
Gabriel Radu
1b1f860c82 Add a pathPrefix key to the operations key 2015-06-24 03:28:38 +01:00
Ole Lensmar
50dd196d42 fixed code formatting and imports 2015-06-24 00:12:50 +02:00
Ole Lensmar
ce6ec20fef added config parameters for all default parameters and a configOptions map for language specific parameters 2015-06-24 00:11:13 +02:00
Ole Lensmar
11e56f5c9c Merge pull request #898 from garethjevans/develop_2.0
Contributed maven plugin to the swagger-codegen project
2015-06-23 23:20:49 +02:00
nmonterroso
efd5b806be updating php generated samples and updating tests 2015-06-23 09:27:52 -07:00
nmonterroso
1b4c71c280 re-adding Configuration->deleteDefaultHeader 2015-06-23 09:27:34 -07:00
wing328
d83036ccdf fix regular expression 2015-06-23 22:36:57 +08:00
wing328
d18426c69a fix reg expression 2015-06-23 22:30:43 +08:00
wing328
351833a923 test fix 2015-06-23 21:52:00 +08:00
wing328
2979d93829 use replace instead of replaceAll 2015-06-23 21:47:10 +08:00
Martin Hardorf
2fce2e4109 Removed wrong hasMore from Angular TypeScript mustache 2015-06-23 15:37:07 +02:00
xhh
13d350be2e Fix warnings and upgrade jersey for Scala client
* Upgrade jersey to latest version (from 1.7 to 1.19)
* Replace getClientResponseStatus() with getStatusInfo()
* Fix the following maven warnings and model import warnings

    [WARNING] 'build.plugins.plugin.version' for org.codehaus.mojo:build-helper-maven-plugin is missing. @ line 72, column 15
    [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

    [WARNING]  Expected all dependencies to require Scala version: 2.10.4
    [WARNING]  com.fasterxml.jackson.module:jackson-module-scala_2.10:2.4.2 requires scala version: 2.10.4
    [WARNING]  org.scala-lang:scala-reflect:2.10.4 requires scala version: 2.10.4
    [WARNING]  io.swagger:swagger-scala-client:1.0.0 requires scala version: 2.10.4
    [WARNING]  org.scalatest:scalatest_2.10:2.1.3 requires scala version: 2.10.3
    [WARNING] Multiple versions of scala libraries detected!

   [WARNING] /Users/xhh/projects/swagger-codegen/samples/client/petstore/scala/src/main/scala/io/swagger/client/model/Pet.scala:3: warning: imported `Category' is permanently hidden by definition of object Category in package model
2015-06-23 21:23:48 +08:00
wing328
550493ba84 fix php separator 2015-06-23 21:20:12 +08:00
Martin Hardorf
c45af23946 Fixed headerParams and paramName 2015-06-23 12:05:43 +02:00
xhh
19ee56592e Allow customizing SSL CA certificate
by adding a `ssl_ca_cert` configuration option
2015-06-23 17:23:22 +08:00
kubo_takaichi
aec4af1b88 Replace slash with File.separator 2015-06-23 16:10:21 +09:00
xhh
46869df631 Make HTTP response accessible by storing the last response
so that users are able to retrieve, for example, rate-limit headers
from the response
2015-06-23 15:02:40 +08:00
nmonterroso
c91a1b963b change serializer to be instanced, rather than static methods 2015-06-22 21:33:44 -07:00
nmonterroso
2fced0f634 Revert "Updates to csharp model template to support inheritance"
This reverts commit 5f1df9e093.
2015-06-22 21:12:13 -07:00
nmonterroso
60b0ffeb0e don't prepend the invokerPackage - an artifact from an earlier implementation 2015-06-22 21:06:22 -07:00
nmonterroso
6623e120cd renaming to Configuration 2015-06-22 20:53:59 -07:00
nmonterroso
46ec934a9c java7 doesn't have replace, but put operates as such, so switch to that 2015-06-22 20:49:12 -07:00
nmonterroso
5a9e9550ca fixing php-doc 2015-06-22 20:43:00 -07:00
nmonterroso
8e0142338e removing unused imports 2015-06-22 20:36:57 -07:00
nmonterroso
61e368ce87 Merge remote-tracking branch 'swagger/develop_2.0' into php-upgrades 2015-06-22 20:29:09 -07:00
nmonterroso
c93b0dd3b8 make srcBasePath configureable 2015-06-22 20:24:19 -07:00
kubo_takaichi
79e31a5761 Add a workaround against void forcibly being converted to string 2015-06-23 12:20:00 +09:00
kubo_takaichi
fa3a9a9d61 Change class package 2015-06-23 12:20:00 +09:00
kubo_takaichi
febaa340e3 Treat object as String (temporary measure) 2015-06-23 12:20:00 +09:00
kubo_takaichi
bcab55e3ef Tighten parameter requirement 2015-06-23 12:20:00 +09:00
kubo_takaichi
24465d2df4 Change model naming 2015-06-23 12:20:00 +09:00
kubo_takaichi
8540ac71c8 Update swift code generation script 2015-06-23 12:20:00 +09:00
kubo_takaichi
9e47042122 Update models 2015-06-23 12:20:00 +09:00
kubo_takaichi
e0109afc60 Fix typo 2015-06-23 12:20:00 +09:00
kubo_takaichi
ff88f7175d Update models 2015-06-23 12:20:00 +09:00
kubo_takaichi
c9a9b0ad2b Refine authMethods description 2015-06-23 12:20:00 +09:00
kubo_takaichi
db01ec801f Add suppressRequired functionality 2015-06-23 12:20:00 +09:00
kubo_takaichi
495e528eec Add generated code 2015-06-23 12:20:00 +09:00
kubo_takaichi
a7c91d610f Add error response body to NSError 2015-06-23 12:20:00 +09:00
kubo_takaichi
d08acf7298 Add a dateTime formatter candidate 2015-06-23 12:20:00 +09:00
kubo_takaichi
7be35bb02e Change method name to avoid name collision 2015-06-23 12:20:00 +09:00
Raghav sidhanti
b4d6fd3ba3 Returning when query param value is null. 2015-06-22 20:16:35 -07:00
nmonterroso
d5d1483656 properly account for custom and non-custom settings for modelPackage and apiPackage 2015-06-22 20:14:54 -07:00
Tony Tam
02c41ac574 fix for #900, invalid param name for java client 2015-06-22 20:00:28 -07:00
nmonterroso
3a6f431f62 make packagePath configureable, and remove unused code 2015-06-22 19:34:03 -07:00
nmonterroso
4fe979a8c0 code compiles and *should* work, but need to re-organize for separate client/api-specific class namespaces 2015-06-22 19:26:26 -07:00
xhh
3b6a3b4a38 Add logging for API call entry and result 2015-06-23 10:12:20 +08:00
nmonterroso
da14c9e692 changing to invokerPackage 2015-06-22 19:09:32 -07:00
nmonterroso
b8b003bc83 Merge remote-tracking branch 'swagger/develop_2.0' into php-upgrades
Conflicts:
	modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java
	modules/swagger-codegen/src/main/resources/php/ApiClient.mustache
	modules/swagger-codegen/src/main/resources/php/ApiException.mustache
	modules/swagger-codegen/src/main/resources/php/api.mustache
	modules/swagger-codegen/src/main/resources/php/autoload.mustache
	modules/swagger-codegen/src/main/resources/php/configuration.mustache
	modules/swagger-codegen/src/main/resources/php/model.mustache
	modules/swagger-codegen/src/test/scala/php/PhpModelTest.scala
2015-06-22 19:09:13 -07:00
xhh
229ea93627 Add debugging switch to Ruby generator 2015-06-23 10:06:01 +08:00
xhh
24296eacea Merge branch 'develop_2.0' into params-order
Conflicts:
	samples/client/petstore/ruby/lib/swagger_client/api/pet_api.rb
2015-06-23 10:02:18 +08:00
Raghav Sidhanti
6958db3d3d Refactored Pairs to use List instead of Set. 2015-06-22 17:14:18 -07:00
Raghav Sidhanti
32b50e7c8e Refactored parameterToPairs 2015-06-22 17:02:00 -07:00
Tony Tam
b803895750 Merge pull request #865 from ammmze/feature/php-namespace-and-doc
Improve PHP namespace support
2015-06-22 16:53:57 -07:00
Tony Tam
d1153dfeb4 Merge pull request #866 from geekerzp/develop_2.0_objc_deserialize_map
[Objc] bug fix for map response
2015-06-22 16:53:28 -07:00
Tony Tam
385fab225e Merge pull request #871 from xhh/ruby-object-type
[Ruby] Support deserialization of "object" type in Ruby generator
2015-06-22 16:53:21 -07:00
Tony Tam
89a5abb217 Merge pull request #870 from wing328/perl_cli_support
[Perl] Add CLI config options and code enhancement
2015-06-22 16:53:12 -07:00
Raghav Sidhanti
79a5614be9 Invalid strings will be passed as blank query param. 2015-06-22 15:55:29 -07:00
Raghav Sidhanti
a1b56c9b83 Renamed QueryParam to Pair class in Android templates. 2015-06-22 15:28:29 -07:00
Raghav Sidhanti
ecddfb7ccf Renamed QueryParam to Pair class in Java templates. 2015-06-22 15:16:45 -07:00
nmonterroso
bd5eb7ace3 update tests 2015-06-22 12:30:52 -07:00
nmonterroso
8e15bd6a85 call setHost on config 2015-06-22 12:13:39 -07:00
nmonterroso
5ef50f9f4b rename ApiConfiguration to ApiClientConfiguration 2015-06-22 12:07:48 -07:00
nmonterroso
a6331244e1 move all configuration to ApiConfiguration 2015-06-22 12:05:22 -07:00
nmonterroso
01d7776fc1 don't create a new response object, and keep the old string value in the exception and have the object as ApiException->responseObject 2015-06-22 11:47:23 -07:00
nmonterroso
109b7eeaec adding static setters/getters for models since members are no public 2015-06-22 11:19:01 -07:00
nmonterroso
5de99bafa7 fixing package output 2015-06-22 11:18:36 -07:00
Gareth Evans
a664abcf51 Contributed maven plugin to the swagger-codegen project 2015-06-22 19:17:29 +01:00
nmonterroso
6f11092a57 call setHost using API baspath when no apiclient is provided 2015-06-22 10:35:57 -07:00
nmonterroso
e598384d97 move authentication to the API level, so that supporting classes aren't api-specific 2015-06-22 10:31:38 -07:00
nmonterroso
53bddae904 separate serialization responsibility to ObjectSerializer class 2015-06-22 09:47:28 -07:00
nmonterroso
1519912a1a cleaning up some php doc 2015-06-22 09:26:45 -07:00
nmonterroso
b3a3bdd2e0 add fully-qualified class names to deserialize params 2015-06-22 09:18:41 -07:00
nmonterroso
04be474f56 moving $host back to ApiClient and making ApiClient setters fluent 2015-06-22 08:36:49 -07:00
nmonterroso
99e963709b renaming configuration 2015-06-22 08:30:08 -07:00
nmonterroso
b9ca19168a remove static fields in Configuration and make variable case more consistent 2015-06-22 08:28:22 -07:00
geekerzp
acf09da578 Fix typo in python codegen 2015-06-22 16:35:15 +08:00
wing328
1d59937150 add nunit test for csharp 2015-06-22 11:53:44 +08:00
nmonterroso
caa1b7f411 generate model imports for support files, and use them as imports 2015-06-19 15:20:29 -07:00
Raghav Sidhanti
7a9a41fe01 Java and Android template changes to accommodate query params defined by the collection-format. 2015-06-19 14:06:25 -07:00
nmonterroso
acdc5328fe deserialize thrown exceptions 2015-06-19 11:24:56 -07:00
nmonterroso
3252dd0d18 check for null array in constructor 2015-06-19 10:32:38 -07:00
nmonterroso
5c409884b9 make setters fluent 2015-06-19 10:31:05 -07:00
nmonterroso
f9f58596b8 account for return type where the response type is in a list container, and properly import models into operations 2015-06-18 16:51:24 -07:00
nmonterroso
bb11322919 use proper namespaces, getters/setters, and phpdocs 2015-06-18 15:41:12 -07:00
nmonterroso
4495774fd5 proper autoloader and move generated files to PSR-4 compliant locations 2015-06-18 15:08:45 -07:00
Andrew B
1aeb50feef Replacing getClientResponseStatus() with getStatusInfo() 2015-06-18 14:41:17 -07:00
Branden Cash
b74050dd7b Change to use the autoload.php and change the namespacing 2015-06-18 11:45:08 -07:00
Branden Cash
2ac7384abf Fix tests 2015-06-18 11:43:54 -07:00
Branden Cash
eed45a41a3 Fixed the missing closing doc chars and updated sample 2015-06-18 11:43:54 -07:00
Branden Cash
69c2f6f945 Add phpdoc for the api.apiClient 2015-06-18 11:43:54 -07:00
Branden Cash
5119299e8a Remove unused code 2015-06-18 11:43:54 -07:00
Branden Cash
719a0b732e Update sample client 2015-06-18 11:43:48 -07:00
Branden Cash
8ed690cad0 Better namespace support, so that your not limited to only having a single vendor space, you can have \Vendor\Package\Model as a namespace. Also updates with proper phpdoc comments so that IDE code hinting can function properly. 2015-06-18 11:41:14 -07:00
William Cheng
f957471509 update silex sample code location 2015-06-19 02:37:08 +08:00
William Cheng
0b0325b8af update readme, fix swaggering name 2015-06-19 02:32:50 +08:00
William Cheng
d178d5e7d8 add sinatra template 2015-06-19 02:11:08 +08:00
nmonterroso
4ef34680cd renaming to ApiClient.mustache 2015-06-18 10:30:53 -07:00
wing328
6ab7be4058 add package version 2015-06-18 22:20:52 +08:00
wing328
df72188bc0 add cli support to csharp 2015-06-18 22:06:59 +08:00
geekerzp
8d18aee2f2 Update test case test_deserialize_to_dict of python client 2015-06-18 22:02:54 +08:00
Martin Hardorf
449ba4f644 Fixed required parameters for APIs in TypeScript 2015-06-18 12:42:04 +02:00
geekerzp
194c8ff71d Update config-help message of python client 2015-06-18 10:43:25 +08:00
geekerzp
62f4c252f2 Update python codegen.
* Update config-help message.
* Do not sanitize packageName to underscore format.
2015-06-18 10:43:24 +08:00
geekerzp
5d19ef6146 Generate the python into python/ folder directly 2015-06-18 10:43:24 +08:00
geekerzp
a32335dfbc Enable cli config options for python generator 2015-06-18 10:43:24 +08:00
geekerzp
6b6480a026 Updated xcode project of objc client 2015-06-18 10:38:19 +08:00
geekerzp
a4df33d040 Add comments for SWGJSONResponseSerializer#responseObjectForResponse
method of objective-c client.
2015-06-18 10:03:51 +08:00
geekerzp
8b15416be5 Add SWGJSONResponseSerializer for objective-c client.
If the response data is valid json, return the deserialized json.
If the response data is invalid json, return the string of response data.
2015-06-18 10:03:51 +08:00
geekerzp
bc92465bf7 Update Objective-C method description (doc comments) style 2015-06-18 10:03:51 +08:00
geekerzp
a6bdc35d59 Support pure object response for objc client 2015-06-18 10:03:51 +08:00
geekerzp
c50c8b724d Support map response for objc client.
completed.
2015-06-18 10:03:50 +08:00
geekerzp
0da3e58fff Support map response for objc client.
not completed
2015-06-18 10:03:12 +08:00
xhh
edcb71ad22 Merge branch 'develop_2.0' into params-order
Conflicts:
	bin/all-petstore.sh
2015-06-18 09:59:13 +08:00
xhh
d6d707543d Merge branch 'develop_2.0' into ruby-object-type
Conflicts:
	modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RubyClientCodegen.java
2015-06-18 09:56:58 +08:00
William Cheng
8858e7d7e3 update perl sample 2015-06-18 02:44:40 +08:00
William Cheng
64b46c2e15 update indentation, remove export 2015-06-18 02:40:15 +08:00
wing328
82baa7ce4b update help text 2015-06-18 10:57:10 +08:00
wing328
d7315b56dc removed non-perl update 2015-06-18 10:57:10 +08:00
wing328
10e07eaf74 add support for cli (perl) 2015-06-18 10:57:09 +08:00
Martin Hardorf
e7d4a438dd Added tests for TypeScript Angular and Node.js 2015-06-17 17:58:52 +02:00
Martin Hardorf
9e8631b75f Added shell scripts for sample generation of TypeScript 2015-06-17 17:56:37 +02:00
Tony Tam
e39ec927a2 Merge pull request #879 from shoatman/master
Updates to csharp model template to support inheritance
2015-06-17 08:30:07 -07:00
Tony Tam
6ad3a717fe Merge pull request #882 from wing328/php_add_silex
[PHP] add Silex server-side codegen
2015-06-17 08:29:48 -07:00
Tony Tam
f66b5cf65b Merge pull request #867 from wing328/fix_jar_path
[Bug fix] Fix path inside JAR for non-template files
2015-06-17 08:28:30 -07:00
Tony Tam
d8c337185f Merge pull request #857 from wing328/php_warning
[PHP] Remove PHP5.3 warning
2015-06-17 08:27:47 -07:00
Tony Tam
5ade64b3e1 Merge pull request #856 from wing328/csharp_upgrade_restsharp
[C#] upgrade restsharp to 105.1.0
2015-06-17 08:27:10 -07:00
Tony Tam
e65a079f0e Merge pull request #855 from geekerzp/develop_2.0_python_deserialize_map
[Python] bug fix for map response
2015-06-17 08:26:58 -07:00
Tony Tam
378ffffdc7 Merge pull request #854 from geekerzp/develop_2.0_objc_pro_rename
[Objc] Change xcode project name in objc sample code
2015-06-17 08:26:42 -07:00
Tony Tam
dd356b54c0 Merge pull request #853 from wing328/perl_support_map3
[Perl] update deserialization to support Map and List
2015-06-17 08:25:45 -07:00
Tony Tam
f56388845c Merge pull request #850 from xhh/ruby-cli-option2
[Ruby] Enabling cli config options for ruby generator
2015-06-17 08:25:34 -07:00
William Cheng
436db1f8e7 add __toString and update php sample 2015-06-17 19:00:29 +08:00
Martin Hardorf
ba4b88ef86 Fixed TypeScript mustache 2015-06-17 12:22:15 +02:00
xhh
b39d44db03 Add missing petstore scripts to bin/all-petstore.sh 2015-06-17 16:16:44 +08:00
xhh
9c4e5ed596 Rebuild Petstare sample for Java, Android, PHP, etc. 2015-06-17 16:15:37 +08:00
wing328
ce40da0f71 add php silex server side codegen 2015-06-17 16:01:24 +08:00
xhh
7f4586a47f Fix comment regarding required parameter in PHP generator 2015-06-17 16:00:59 +08:00
xhh
24a2de7389 Sort parameters to move required ones in front of optional ones 2015-06-17 16:00:16 +08:00
Shane Oatman
5f1df9e093 Updates to csharp model template to support inheritance 2015-06-16 12:12:17 -07:00
xhh
5435777c65 Merge remote-tracking branch 'origin/develop_2.0' into ruby-object-type 2015-06-16 18:42:18 +08:00
xhh
7c355030f4 Add to_s method for models 2015-06-16 18:41:51 +08:00
Nadezhda Makarkina
7b5b874fdc Fixed #798: original jar generation has been fixed. 2015-06-16 11:58:22 +03:00
Martin Hardorf
f87bb12ebb Added support for TypeScript generation for AngularJS and Node.js 2015-06-16 10:44:05 +02:00
xhh
d2d5cf0d57 Add convention notes to Ruby CLI options 2015-06-16 12:17:11 +08:00
xhh
6348f67b18 Merge remote-tracking branch 'origin/develop_2.0' into ruby-cli-option2 2015-06-16 12:07:15 +08:00
Ron
eaf5a371ff Merge pull request #863 from wing328/fix_typo
Fixed a minor typo with the command example
2015-06-15 13:20:05 +03:00
Ron
dee0948e3e Update README.md 2015-06-15 13:19:56 +03:00
xhh
a59d4ba346 Add test case for finding nonexistent pet 2015-06-15 16:51:38 +08:00
xhh
ec8e5179cb Remove unused comments 2015-06-15 16:46:30 +08:00
xhh
9d5928551b Unify ClientError and ServerError into ApiError
in Ruby generator
2015-06-15 16:38:08 +08:00
wing328
456e17430b Merge branch 'php_warning' of https://github.com/wing328/swagger-codegen into php_warning 2015-06-15 15:51:12 +08:00
wing328
839f0971f0 rename php ApiClient 2015-06-15 15:50:40 +08:00
xhh
e9c1dd7842 Regard bare "object" type as Object, add comments
The handling of base "object" type (without definions of
"additionalProperties") is similar to Java generator now.
2015-06-15 12:49:17 +08:00
wing328
24b110be9d show writing file for non-template file 2015-06-14 01:27:47 +08:00
wing328
7a560865a0 fix jar path in windows 2015-06-14 00:59:40 +08:00
geekerzp
718a9a79ed Update test case test_deserialize_to_object of python client. 2015-06-13 19:05:15 +08:00
geekerzp
ff9623fb5c Support pure object response for python client. 2015-06-13 18:58:27 +08:00
xhh
80616b4c2b Add test cases for StoreApi#get_inventory 2015-06-12 23:03:17 +08:00
xhh
36f0ed6d0c Add test cases for Response#deserialize 2015-06-12 22:44:52 +08:00
xhh
4c8c6c3880 Rebuild Ruby Petstore sample 2015-06-12 20:18:50 +08:00
xhh
e38fc2c3da Deserialize response for "object" type in Ruby client 2015-06-12 20:15:48 +08:00
wing328
2fdae91cbc fix a typo in readme 2015-06-12 16:12:54 +08:00
William Cheng
7aab1eaffb update test.php to put exception test at last 2015-06-10 23:53:56 +08:00
wing328
a0c55693dc add test case for loginUser, separate test cases into different files 2015-06-10 21:59:48 +08:00
wing328
9aca2868b9 change static method to instance method, update test case to remove php warning 2015-06-10 21:18:48 +08:00
wing328
4982784d7c upgrade restsharp to 105.1.0 2015-06-10 15:57:07 +08:00
geekerzp
e2d441e862 support map type response for python client 2015-06-10 11:55:12 +08:00
wing328
303dbe7730 fix array,map for perl, add test case 2015-06-10 10:53:21 +08:00
geekerzp
d7b10a17c1 Renamed objc client from PetstoreClient to SwaggerClient 2015-06-10 10:53:16 +08:00
Alexey Nechaev
3f194d3288 Fixed #837: Generation of default values for complex arrays and maps has been improved. 2015-06-09 19:34:09 +03:00
fehguy
672fcd5a14 updated dev version 2015-06-09 01:36:52 -07:00
fehguy
3768932ba2 updated dev version 2015-06-09 01:36:48 -07:00
xhh
1315e2d72c Add new line to make code more readable 2015-06-09 15:47:37 +08:00
xhh
44780e6e1b Merge branch 'develop_2.0' into ruby-cli-option2
Conflicts:
	modules/swagger-codegen/src/main/resources/ruby/swagger/version.mustache
2015-06-09 15:44:50 +08:00
xhh
d2a82d56aa Enable CLI options for Ruby generator 2015-06-09 10:16:52 +08:00
1517 changed files with 127113 additions and 35229 deletions

47
.dockerignore Normal file
View File

@@ -0,0 +1,47 @@
*.iml
out/
*.ipr
*.iws
classpath.txt
version.properties
.project
.classpath
lib/*
build/*
generated-files/*
generated-sources/*
generated-code/*
*.swp
*.swo
/target
/generated-files
/nbactions.xml
*.pyc
__pycache__
samples/server-generator/scalatra/output
samples/server-generator/node/output/node_modules
samples/server-generator/scalatra/target
samples/server-generator/scalatra/output/.history
samples/client/petstore/qt5cpp/PetStore/moc_*
samples/client/petstore/qt5cpp/PetStore/*.o
samples/client/petstore/objc/PetstoreClient.xcworkspace/xcuserdata
samples/client/petstore/qt5cpp/build-*
samples/client/petstore/qt5cpp/PetStore/PetStore
samples/client/petstore/qt5cpp/PetStore/Makefile
samples/client/petstore/java/hello.txt
samples/client/petstore/android/default/hello.txt
samples/client/petstore/objc/Build
samples/client/petstore/objc/Pods
samples/server/petstore/nodejs/node_modules
target
.idea
.lib
atlassian-ide-plugin.xml
.DS_Store
samples/client/petstore/php/SwaggerClient-php/composer.lock
samples/client/petstore/php/SwaggerClient-php/vendor/
samples/client/petstore/silex/SwaggerServer/composer.lock
samples/client/petstore/silex/SwaggerServer/venodr/

30
.gitignore vendored
View File

@@ -9,9 +9,11 @@ version.properties
lib/*
build/*
generated-files/*
generated-sources/*
generated-code/*
*.swp
*.swo
*.csproj.user
/target
/generated-files
@@ -29,15 +31,37 @@ samples/client/petstore/qt5cpp/build-*
samples/client/petstore/qt5cpp/PetStore/PetStore
samples/client/petstore/qt5cpp/PetStore/Makefile
samples/client/petstore/java/hello.txt
samples/client/petstore/android-java/hello.txt
samples/client/petstore/objc/Build
samples/client/petstore/objc/Pods
samples/client/petstore/android/default/hello.txt
samples/client/petstore/objc/SwaggerClientTests/Build
samples/client/petstore/objc/SwaggerClientTests/Pods
samples/client/petstore/objc/SwaggerClientTests/SwaggerClient.xcworkspace
samples/client/petstore/objc/SwaggerClientTests/Podfile.lock
samples/server/petstore/nodejs/node_modules
samples/client/petstore/csharp/SwaggerClientTest/.vs
samples/client/petstore/csharp/SwaggerClientTest/obj
samples/client/petstore/csharp/SwaggerClientTest/bin
target
.idea
.lib
atlassian-ide-plugin.xml
.DS_Store
packages/
.pub
.packages
samples/client/petstore/php/SwaggerClient-php/composer.lock
samples/client/petstore/php/SwaggerClient-php/vendor/
samples/client/petstore/silex/SwaggerServer/composer.lock
samples/client/petstore/silex/SwaggerServer/venodr/
samples/client/petstore/python/.projectile
samples/client/petstore/python/.venv/
.settings
*.mustache~
*.java~
*.pm~
*.xml~
*.t~

View File

@@ -1,5 +1,22 @@
sudo: false
sudo: required
language: java
script: mvn verify
jdk:
- oraclejdk7
services:
- docker
before_install:
# required when sudo: required for the Ruby petstore tests
- gem install bundler
install:
- docker login --email=$DOCKER_HUB_EMAIL --username=$DOCKER_HUB_USERNAME --password=$DOCKER_HUB_PASSWORD
script:
- mvn verify -Psamples
- docker build -t $DOCKER_IMAGE_NAME ./modules/swagger-generator
- if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_IMAGE_NAME:latest $DOCKER_IMAGE_NAME:$TRAVIS_TAG; fi && docker push $DOCKER_IMAGE_NAME
env:
- DOCKER_IMAGE_NAME=swaggerapi/swagger-generator

62
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,62 @@
# Guidelines For Contributing
## Before submitting an issue
- Before submitting an issue, search the [open issue](https://github.com/swagger-api/swagger-codegen/issues) and [closed issue](https://github.com/swagger-api/swagger-codegen/issues?q=is%3Aissue+is%3Aclosed) to ensure no one else has reported something similar before.
- The issue should contain details on how to repeat the issue, e.g.
- the OpenAPI Spec for reproducing the issue (:bulb: use [Gist](https://gist.github.com) to share). If the OpenAPI Spec cannot be shared publicly, it will be hard for the community to help
- version of Swagger Codegen
- language (`-l` in the command line, e.g. java, csharp, php)
- You can also make a suggestion or ask a question by opening an "issue"
## Before submitting a PR
- Search the [open issue](https://github.com/swagger-api/swagger-codegen/issues) to ensure no one else has reported something similar and no one is actively working on similar proposed change.
- If no one has suggested something similar, open an ["issue"](https://github.com/swagger-api/swagger-codegen/issues) with your suggestion to gather feedback from the community.
## How to contribute
### Code generators
All the code generators can be found in [modules/swagger-codegen/src/main/java/io/swagger/codegen/languages](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages)
### Templates
All the templates ([mustache](https://mustache.github.io/)) can be found in [modules/swagger-codegen/src/main/resources](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources).
For a list of variables available in the template, please refer to this [page](https://github.com/swagger-api/swagger-codegen/wiki/Mustache-Template-Variables)
### Style guide
Code change should conform to the programming style guide of the respective langauages:
- C#: https://msdn.microsoft.com/en-us/library/vstudio/ff926074.aspx
- Java: https://google.github.io/styleguide/javaguide.html
- ObjC: https://github.com/NYTimes/objective-c-style-guide
- PHP: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
- Python: https://www.python.org/dev/peps/pep-0008/
- Ruby: https://github.com/bbatsov/ruby-style-guide
- TypeScript: https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines
For other languages, feel free to suggest.
You may find the current code base not 100% conform to the coding style and we welcome contributions to fix those.
### Testing
To add test cases (optional) covering the change in the code generator, please refer to [modules/swagger-codegen/src/test/java/io/swagger/codegen](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/test/java/io/swagger/codegen)
To test the templates, please perform the following:
- Update the [Petstore](http://petstore.swagger.io/) sample by running the shell script under `bin` folder. For example, run `./bin/ruby-petstore.sh` to update the Ruby PetStore API client under [`samples/client/petstore/ruby`](https://github.com/swagger-api/swagger-codegen/tree/master/samples/client/petstore/ruby) (For Windows, the batch files can be found under `bin\windows` folder)
- Run the tests in the sample folder, e.g. in `samples/client/petstore/ruby`, run `mvn integration-test -rf :RubyPetstoreClientTests`. (some languages may not contain unit testing for Petstore and we're looking for contribution from the community to implement those tests)
- Finally, git commit the updated samples files: `git commit -a`
(`git add -A` if added files with new test cases)
To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all the required tools installed to run tests for different languages) or you can leverage http://travis-ci.org to run the CI tests by adding your own Swagger-Codegen repository.
### Tips
- Smaller changes are easier to review
- [Optional] For bug fixes, provide a OpenAPI Spec to repeat the issue so that the reviewer can use it to confirm the fix
- Add test case(s) to cover the change
- Document the fix in the code to make the code more readable
- Make sure test cases passed after the change (one way is to leverage https://travis-ci.org/ to run the CI tests)

13
Dockerfile Normal file
View File

@@ -0,0 +1,13 @@
FROM maven:3.3-jdk-7
WORKDIR /src
VOLUME /src
VOLUME /root/.m2/repository
ADD . /opt/swagger-codegen
RUN cd /opt/swagger-codegen && mvn package
ENTRYPOINT ["java", "-jar", "/opt/swagger-codegen/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"]
CMD ["help"]

300
README.md
View File

@@ -1,47 +1,131 @@
# Swagger Code Generator
[![Build Status](https://travis-ci.org/swagger-api/swagger-codegen.png)](https://travis-ci.org/swagger-api/swagger-codegen)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.swagger/swagger-codegen-project/badge.svg?style=plastic)](https://maven-badges.herokuapp.com/maven-central/io.swagger/swagger-codegen-project)
:star::star::star: If you would like to contribute, please refer to [guidelines](https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md) and a list of [open tasks](https://github.com/swagger-api/swagger-codegen/issues?q=is%3Aopen+is%3Aissue+label%3A%22Need+community+contribution%22).:star::star::star:
## Overview
This is the swagger codegen project, which allows generation of client libraries automatically from a Swagger-compliant server.
Check out [Swagger-Spec](https://github.com/swagger-api/swagger-spec) for additional information about the Swagger project, including additional libraries with support for other languages and more.
Check out [Swagger-Spec](https://github.com/OAI/OpenAPI-Specification) for additional information about the Swagger project, including additional libraries with support for other languages and more.
# Table of contents
- [Swagger Code Generator](#swagger-code-generator)
- [Overview](#overview)
- [Table of Contents](#table-of-contents)
- Installation
- [Compatibility](#compatibility)
- [Prerequisites](#prerequisites)
- [OS X Users](#os-x-users)
- [Building](#building)
- [Docker](#docker)
- [Build and run](#build-and-run-using-docker)
- [Build a Node.js server stub](#build-a-nodejs-server-stub)
- [Homebrew](#homebrew)
- Generators
- [To generate a sample client library](#to-generate-a-sample-client-library)
- [Generating libraries from your server](#generating-libraries-from-your-server)
- [Modifying the client library format](#modifying-the-client-library-format)
- [Making your own codegen modules](#making-your-own-codegen-modules)
- [Where is Javascript???](#where-is-javascript)
- [Generating a client from local files](#generating-a-client-from-local-files)
- [Customizing the generator](#customizing-the-generator)
- [Validating your OpenAPI Spec](#validating-your-swagger-spec)
- [Generating dynamic html api documentation](#generating-dynamic-html-api-documentation)
- [Generating static html api documentation](#generating-static-html-api-documentation)
- [To build a server stub](#to-build-a-server-stub)
- [Node.js](#nodejs)
- [PHP Silex](#php-silex)
- [Python Flask (Connexion)](#python-flask-connexion)
- [Ruby Sinatra](#ruby-sinatra)
- [Scala Scalatra](#scala-scalatra)
- [Java JAX-RS](#java-jax-rs)
- [Java Spring MVC](#java-spring-mvc)
- [To build the codegen library](#to-build-the-codegen-library)
- [Workflow Integration](#workflow-integration)
- [Online Generators](#online-generators)
- [Guidelines for Contribution](https://github.com/swagger-api/swagger-codegen/wiki/Guidelines-for-Contribution)
- [License](#license)
## Compatibility
The Swagger Specification has undergone 3 revisions since initial creation in 2010. The swagger-codegen project has the following compatibilies with the swagger specification:
The OpenAPI Specification has undergone 3 revisions since initial creation in 2010. The swagger-codegen project has the following compatibilies with the OpenAPI Specification:
Swagger Codegen Version | Release Date | Swagger Spec compatibility | Notes
----------------------- | ------------ | -------------------------- | -----
2.1.0 | 2015-06-09 | 1.0, 1.1, 1.2, 2.0 | [master](https://github.com/swagger-api/swagger-codegen)
2.0.17 | 2014-08-22 | 1.1, 1.2 | [tag v2.0.17](https://github.com/swagger-api/swagger-codegen/tree/v2.0.17)
1.0.4 | 2012-04-12 | 1.0, 1.1 | [tag v1.0.4](https://github.com/swagger-api/swagger-codegen/tree/swagger-codegen_2.9.1-1.1)
Swagger Codegen Version | Release Date | OpenAPI Spec compatibility | Notes
-------------------------- | ------------ | -------------------------- | -----
2.1.6-SNAPSHOT | | 1.0, 1.1, 1.2, 2.0 | [master](https://github.com/swagger-api/swagger-codegen)
2.1.5 (**current stable**) | 2015-01-06 | 1.0, 1.1, 1.2, 2.0 | [tag v2.1.5](https://github.com/swagger-api/swagger-codegen/tree/v2.1.4)
2.0.17 | 2014-08-22 | 1.1, 1.2 | [tag v2.0.17](https://github.com/swagger-api/swagger-codegen/tree/v2.0.17)
1.0.4 | 2012-04-12 | 1.0, 1.1 | [tag v1.0.4](https://github.com/swagger-api/swagger-codegen/tree/swagger-codegen_2.9.1-1.1)
### Prerequisites
You need the following installed and available in your $PATH:
If you're looking for the latest stable version, you can grab it directly from maven central (you'll need the java 7 runtime):
```
wget http://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.1.4/swagger-codegen-cli-2.1.4.jar swagger-codegen-cli.jar
java -jar swagger-codegen-cli.jar help
```
On a mac, it's even easier with `brew`:
```
brew install swagger-codegen
```
To build from source, you need the following installed and available in your $PATH:
* [Java 7](http://java.oracle.com)
* [Apache maven 3.0.3 or greater](http://maven.apache.org/)
#### OS X Users
Don't forget to install Java 7. You probably have 1.6 or 1.8.
Export JAVA_HOME in order to user proper Java version:
Export JAVA_HOME in order to use the supported Java version:
```
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
export PATH=${JAVA_HOME}/bin:$PATH
```
#### Building
### Building
After cloning the project, you can build it from source with this command:
```
mvn package
```
### Docker
#### Build and run using docker
```
git clone https://github.com/swagger-api/swagger-codegen
cd swagger-codegen
./run-in-docker.sh mvn package
```
#### Build a Node.js server stub
```
./run-in-docker.sh generate \
-i http://petstore.swagger.io/v2/swagger.json \
-l nodejs \
-o samples/server/petstore/nodejs
```
### Homebrew
To install, run `brew install swagger-codegen`
Here is an example usage:
```
swagger-codegen generate -i http://petstore.swagger.io/v2/swagger.json -l ruby -o /tmp/test/
```
### To generate a sample client library
You can build a client against the swagger sample [petstore](http://petstore.swagger.io) API as follows:
@@ -49,6 +133,8 @@ You can build a client against the swagger sample [petstore](http://petstore.swa
./bin/java-petstore.sh
```
(On Windows, run `./bin/windows/java-petstore.bat` instead)
This will run the generator with this command:
```
@@ -58,7 +144,7 @@ java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-o samples/client/petstore/java
```
With a number of options. You can get the options with the `help generate` command:
with a number of options. You can get the options with the `help generate` command:
```
NAME
@@ -73,6 +159,7 @@ SYNOPSIS
[(-o <output directory> | --output <output directory>)]
[(-t <template directory> | --template-dir <template directory>)]
[(-v | --verbose)]
[(-s | --skip-overwrite)]
OPTIONS
-a <authorization>, --auth <authorization>
@@ -91,7 +178,7 @@ OPTIONS
name=value,name=value
-i <spec file>, --input-spec <spec file>
location of the swagger spec, as URL or file (required)
location of the OpenAPI Spec, as URL or file (required)
-l <language>, --lang <language>
client language to generate (maybe class name in classpath,
@@ -105,7 +192,11 @@ OPTIONS
-v, --verbose
verbose mode
```
-s , --skip-overwrite
specifies if the existing files should be overwritten during
the generation
```
You can then compile and run the client, as well as unit tests against it:
@@ -133,20 +224,37 @@ You can look at `modules/swagger-codegen/src/main/resources/${your-language}` fo
If you're starting a project with a new language and don't see what you need, swagger-codegen can help you create a project to generate your own libraries:
```
java -jar modules/swagger-codegen-distribution/target/swagger-codegen-cli.jar meta \
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar meta \
-o output/myLibrary -n myClientCodegen -p com.my.company.codegen
```
This will write, in the folder `output/myLibrary`, all the files you need to get started, including a README.md. Once modified and compiled, you can load your library with the codegen and generate clients with your own, custom-rolled logic.
You would then compile your library in the `output/myLibrary` folder with `mvn package` and execute the codegen like such:
```
java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar io.swagger.codegen.Codegen
```
Note the `myClientCodegen` is an option now, and you can use the usual arguments for generating your library:
```
java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar \
io.swagger.codegen.Codegen generate -l myClientCodegen\
-i http://petstore.swagger.io/v2/swagger.json \
-o myClient
```
### Where is Javascript???
See our [javascript library](http://github.com/swagger-api/swagger-js)--it's completely dynamic and doesn't require
static code generation.
There is a third-party component called [swagger-js-codegen](https://github.com/wcandillon/swagger-js-codegen) that can generate angularjs or nodejs source code from a swagger specification.
There is a third-party component called [swagger-js-codegen](https://github.com/wcandillon/swagger-js-codegen) that can generate angularjs or nodejs source code from a OpenAPI Specification.
:exclamation: On Dec 7th 2015, a Javascript API client generator has been added by @jfiala.
#### Generating a client from flat files (i.e. no remote server calls)
If you don't want to call your server, you can save the swagger spec files into a directory and pass an argument
### Generating a client from local files
If you don't want to call your server, you can save the OpenAPI Spec files into a directory and pass an argument
to the code generator like this:
```
@@ -155,36 +263,79 @@ to the code generator like this:
Great for creating libraries on your ci server, from the [Swagger Editor](http://editor.swagger.io)... or while coding on an airplane.
### Selective generation
You may not want to generate *all* models in your project. Likewise you may want just one or two apis to be written. If that's the case, you can use system properties to control the output:
The default is generate *everything* supported by the specific library. Once you enable a feature, it will restrict the contents generated:
```
# generate only models
java -Dmodels {opts}
# generate only apis
java -Dapis {opts}
# generate only supporting files
java -DsupportingFiles
# generate models and supporting files
java -Dmodels -DsupportingFiles
```
To control the specific files being generated, you can pass a CSV list of what you want:
```
# generate the User and Pet models only
-Dmodels=User,Pet
# generate the User model and the supportingFile `StringUtil.java`:
-Dmodels=User -DsupportingFiles=StringUtil.java
```
When using selective generation, _only_ the templates needed for the specific generation will be used.
### Customizing the generator
There are different aspects of customizing the code generator beyond just creating or modifying templates. Each language has a supporting configuration file to handle different type mappings, etc:
```
$ ls -1 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/
AbstractTypeScriptClientCodegen.java
AkkaScalaClientCodegen.java
AndroidClientCodegen.java
AndroidVolleyClientCodegen.java
AsyncScalaClientCodegen.java
CSharpClientCodegen.java
ClojureClientCodegen.java
CsharpDotNet2ClientCodegen.java
DartClientCodegen.java
FlashClientCodegen.java
FlaskConnexionCodegen.java
JavaClientCodegen.java
JavaInflectorServerCodegen.java
JavascriptClientCodegen.java
JaxRSServerCodegen.java
JMeterCodegen.java
NodeJSServerCodegen.java
ObjcClientCodegen.java
PerlClientCodegen.java
PhpClientCodegen.java
Python3ClientCodegen.java
PythonClientCodegen.java
Qt5CPPGenerator.java
RetrofitClientCodegen.java
RubyClientCodegen.java
ScalaClientCodegen.java
ScalatraServerCodegen.java
SilexServerCodegen.java
SinatraServerCodegen.java
SlimFrameworkServerCodegen.java
SpringMVCServerCodegen.java
StaticDocCodegen.java
StaticHtmlGenerator.java
SwaggerGenerator.java
SwaggerYamlGenerator.java
SwiftGenerator.java
SwiftCodegen.java
TizenClientCodegen.java
TypeScriptAngularClientCodegen.java
TypeScriptNodeClientCodegen.java
```
Each of these files creates reasonable defaults so you can get running quickly. But if you want to configure package names, prefixes, model folders, etc. you can use a json config file to pass the values.
@@ -196,10 +347,11 @@ java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-o samples/client/petstore/java \
-c path/to/config.json
```
Supported config options can be different per language. Running `config-help -l {lang}` will show available options.
Supported config options can be different per language. Running `config-help -l {lang}` will show available options. **These options are applied
by passing them with `-D{optionName}={optionValue}**.
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jarr config-help -l java
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar config-help -l java
```
Output
@@ -212,6 +364,9 @@ CONFIG OPTIONS
apiPackage
package for generated api classes
sortParamsByRequiredFlag
Sort method arguments to place required parameters before optional parameters. Default: true
invokerPackage
root package for generated code
@@ -226,6 +381,21 @@ CONFIG OPTIONS
sourceFolder
source folder for generated code
localVariablePrefix
prefix for generated code members and local variables
serializableModel
boolean - toggle "implements Serializable" for generated models
library
library template (sub-template) to use:
<default> - HTTP client: Jersey client 1.18. JSON processing: Jackson 2.4.2
jersey2 - HTTP client: Jersey client 2.6
feign - HTTP client: Netflix Feign 8.1.1. JSON processing: Jackson 2.6.3
okhttp-gson - HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1
retrofit - HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1 (Retrofit 1.9.0)
retrofit2 - HTTP client: OkHttp 2.5.0. JSON processing: Gson 2.4 (Retrofit 2.0.0-beta2)
```
Your config file for java can look like
@@ -234,13 +404,14 @@ Your config file for java can look like
{
"groupId":"com.my.company",
"artifactId":"MyClent",
"artifactVersion":"1.2.0"
"artifactVersion":"1.2.0",
"library":"feign"
}
```
For all the unspecified options default values will be used.
Another way to override default options is to extend config class for specific language.
Another way to override default options is to extend the config class for the specific language.
To change, for example, the prefix for the Objective-C generated files, simply subclass the ObjcClientCodegen.java:
```
@@ -263,7 +434,25 @@ and specify the `classname` when running the generator:
Your subclass will now be loaded and overrides the `PREFIX` value in the superclass.
### Validating your swagger spec
### Bringing your own models
Sometimes you don't want a model generated. In this case, you can simply specify an import mapping to tell
the codegen what _not_ to create. When doing this, every location that references a specific model will
refer back to your classes. Note, this may not apply to all languages...
To specify an import mapping, use the `--import-mappings` argument and specify the model-to-import logic as such:
```
--import-mappings Pet=my.models.MyPet
```
Or for multiple mappings:
```
Pet=my.models.MyPet,Order=my.models.MyOrder
```
### Validating your OpenAPI Spec
You have options. The easiest is to use our [online validator](https://github.com/swagger-api/validator-badge) which not only will let you validate your spec, but with the debug flag, you can see what's wrong with your spec. For example:
@@ -296,7 +485,8 @@ open index.html
You can also use the codegen to generate a server for a couple different frameworks. Take a look here:
### node.js
### Node.js
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-i http://petstore.swagger.io/v2/swagger.json \
@@ -304,11 +494,34 @@ java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-o samples/server/petstore/nodejs
```
### rails-grape
#### Not yet migrated to this branch
### PHP Silex
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-i http://petstore.swagger.io/v2/swagger.json \
-l silex \
-o samples/server/petstore/silex
```
### scala scalatra
### Python Flask (Connexion)
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-i http://petstore.swagger.io/v2/swagger.json \
-l flaskConnexion \
-o samples/server/petstore/flaskConnexion
```
### Ruby Sinatra
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-i http://petstore.swagger.io/v2/swagger.json \
-l sinatra \
-o samples/server/petstore/sinatra
```
### Scala Scalatra
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-i http://petstore.swagger.io/v2/swagger.json \
@@ -316,7 +529,7 @@ java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-o samples/server/petstore/scalatra
```
### java jax-rs
### Java JAX-RS
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
@@ -325,7 +538,7 @@ java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-o samples/server/petstore/jaxrs
```
### java spring-mvc
### Java Spring MVC
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
@@ -333,6 +546,7 @@ java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-l spring-mvc \
-o samples/server/petstore/spring-mvc
```
### To build the codegen library
This will create the swagger-codegen library from source.
@@ -343,6 +557,26 @@ mvn package
Note! The templates are included in the library generated. If you want to modify the templates, you'll need to either repackage the library OR specify a path to your scripts
## Workflow integration
You can use the [swagger-codegen-maven-plugin](modules/swagger-codegen-maven-plugin/README.md) for integrating with your workflow, and generating any codegen target.
## Online generators
One can also generate API client or server using the online generators (https://generator.swagger.io)
For example, to generate Ruby API client, simply send the following HTTP request using curl:
```
curl -X POST -H "content-type:application/json" -d '{"swaggerUrl":"http://petstore.swagger.io/v2/swagger.json"}' https://generator.swagger.io/api/gen/clients/ruby
```
Then you will receieve a JSON response with the URL to download the zipped code.
Guidelines for Contribution
---------------------------
Please refer to this [page](https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md)
License
-------

View File

@@ -18,19 +18,33 @@ if [ ! -d "${APP_DIR}" ]; then
fi
cd $APP_DIR
./bin/android-java-petstore.sh
./bin/akka-scala-petstore.sh
./bin/android-petstore.sh
./bin/clojure-petstore.sh
./bin/csharp-petstore.sh
./bin/dynamic-html.sh
./bin/html-petstore.sh
./bin/jaxrs-petstore-server.sh
./bin/java-petstore.sh
./bin/qt5-petstore.sh
./bin/java-petstore-jersey2.sh
./bin/java-petstore-okhttp-gson.sh
./bin/java-petstore-retrofit.sh
+./bin/java-petstore-retrofit2.sh
./bin/jaxrs-petstore-server.sh
./bin/nodejs-petstore-server.sh
./bin/objc-petstore.sh
./bin/perl-petstore.sh
./bin/php-petstore.sh
./bin/python-petstore.sh
./bin/retrofit-petstore.sh
./bin/qt5-petstore.sh
./bin/ruby-petstore.sh
./bin/objc-petstore.sh
./bin/scala-async-petstore.sh
./bin/scala-petstore.sh
./bin/scalatra-petstore-server.sh
./bin/silex-petstore-server.sh
./bin/slim-petstore-server.sh
./bin/spring-mvc-petstore-server.sh
./bin/spring-mvc-petstore-j8-async-server.sh
./bin/swift-petstore.sh
./bin/tizen-petstore.sh
./bin/typescript-angular-petstore.sh
./bin/typescript-node-petstore.sh

View File

@@ -0,0 +1,4 @@
{
"library": "volley",
"artifactId": "swagger-petstore-android-volley"
}

View File

@@ -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 -t modules/swagger-codegen/src/main/resources/python3 -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l python3 -o samples/client/petstore/python3"
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l android -c bin/android-petstore-volley.json -o samples/client/petstore/android/volley"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -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 -t modules/swagger-codegen/src/main/resources/android-java -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l android -o samples/client/petstore/android-java"
ags="$@ generate -t modules/swagger-codegen/src/main/resources/android -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l android -o samples/client/petstore/android/default"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -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 -t modules/swagger-codegen/src/main/resources/retrofit -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l retrofit -o samples/client/petstore/retrofit"
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l clojure -o samples/client/petstore/clojure"
java $JAVA_OPTS -jar $executable $ags

31
bin/csharp-dotnet2-petstore.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 CsharpDotNet2 -o samples/client/petstore/csharp-dotnet2/SwaggerClientTest/Lib/SwaggerClient"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -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 csharp -o samples/client/petstore/csharp"
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l csharp -o samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient"
java $JAVA_OPTS -jar $executable $ags

31
bin/dart-petstore.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 dart -o samples/client/petstore/dart"
java $JAVA_OPTS -jar $executable $ags

31
bin/flash-petstore.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 -t modules/swagger-codegen/src/main/resources/flash -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l flash -o samples/client/petstore/flash"
java $JAVA_OPTS -jar $executable $ags

31
bin/flaskConnexion.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 python-flask -o samples/server/petstore/flaskConnexion "
java $JAVA_OPTS -Dservice -jar $executable $ags

View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 -t modules/swagger-codegen/src/main/resources/JavaInflector -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l inflector -o samples/server/petstore/java-inflector"
java $JAVA_OPTS -jar $executable $ags

9
bin/java-petstore-all.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
# update java petstore for all supported http libraries
./bin/java-petstore.sh
./bin/java-petstore-jersey2.sh
./bin/java-petstore-feign.sh
./bin/java-petstore-okhttp-gson.sh
./bin/java-petstore-retrofit.sh
./bin/java-petstore-retrofit2.sh

View File

@@ -0,0 +1,4 @@
{
"library": "feign",
"artifactId": "swagger-petstore-feign"
}

31
bin/java-petstore-feign.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 java -c bin/java-petstore-feign.json -o samples/client/petstore/java/feign"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -0,0 +1,4 @@
{
"library": "jersey2",
"artifactId": "swagger-petstore-jersey2"
}

31
bin/java-petstore-jersey2.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 java -c bin/java-petstore-jersey2.json -o samples/client/petstore/java/jersey2"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -0,0 +1,4 @@
{
"library": "okhttp-gson",
"artifactId": "swagger-petstore-okhttp-gson"
}

View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 java -c bin/java-petstore-okhttp-gson.json -o samples/client/petstore/java/okhttp-gson"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -0,0 +1,4 @@
{
"library": "retrofit",
"artifactId": "swagger-petstore-retrofit"
}

31
bin/java-petstore-retrofit.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 java -c bin/java-petstore-retrofit.json -o samples/client/petstore/java/retrofit"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -0,0 +1,4 @@
{
"library": "retrofit2",
"artifactId": "swagger-petstore-retrofit2"
}

31
bin/java-petstore-retrofit2.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 java -c bin/java-petstore-retrofit2.json -o samples/client/petstore/java/retrofit2"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -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 java -o samples/client/petstore/java"
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l java -o samples/client/petstore/java/default"
java $JAVA_OPTS -jar $executable $ags

31
bin/javascript-petstore.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 -t modules/swagger-codegen/src/main/resources/javascript -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l javascript -o samples/client/petstore/javascript"
java -DappName=PetstoreClient $JAVA_OPTS -jar $executable $ags

View File

@@ -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 -t modules/swagger-codegen/src/main/resources/JavaJaxRS -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l jaxrs -o samples/server/petstore/jaxrs -Dswagger.codegen.jaxrs.impl.source=src/main/java"
ags="$@ generate -t modules/swagger-codegen/src/main/resources/JavaJaxRS -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l jaxrs -o samples/server/petstore/jaxrs"
java $JAVA_OPTS -jar $executable $ags

5
bin/ruby-petstore.json Normal file
View File

@@ -0,0 +1,5 @@
{
"gemName": "petstore",
"moduleName": "Petstore",
"gemVersion": "1.0.0"
}

View File

@@ -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 -t modules/swagger-codegen/src/main/resources/ruby -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l ruby -o samples/client/petstore/ruby"
ags="$@ generate -t modules/swagger-codegen/src/main/resources/ruby -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l ruby -c bin/ruby-petstore.json -o samples/client/petstore/ruby"
java $JAVA_OPTS -jar $executable $ags

31
bin/silex-petstore-server.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 -t modules/swagger-codegen/src/main/resources/silex -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l silex -o samples/server/petstore/silex"
java $JAVA_OPTS -jar $executable $ags

31
bin/sinatra-petstore-server.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 -t modules/swagger-codegen/src/main/resources/sinatra -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l sinatra -o samples/server/petstore/sinatra"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 -t modules/swagger-codegen/src/main/resources/slim -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l slim -o samples/server/petstore/slim"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 -t modules/swagger-codegen/src/main/resources/JavaSpringMVC -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l spring-mvc -o samples/server/petstore/spring-mvc-j8-async -c bin/spring-mvc-petstore-j8-async.json"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -0,0 +1,3 @@
{
"library": "j8-async"
}

4
bin/swift-petstore.json Normal file
View File

@@ -0,0 +1,4 @@
{
"projectName": "PetstoreClient",
"responseAs": "PromiseKit"
}

View File

@@ -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 -t modules/swagger-codegen/src/main/resources/swift -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l swift -o samples/client/petstore/swift"
ags="$@ generate -t modules/swagger-codegen/src/main/resources/swift -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l swift -c ./bin/swift-petstore.json -o samples/client/petstore/swift"
java -DappName=PetstoreClient $JAVA_OPTS -jar $executable $ags
java $JAVA_OPTS -jar $executable $ags

View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 typescript-angular -o samples/client/petstore/typescript-angular"
java $JAVA_OPTS -jar $executable $ags

31
bin/typescript-node-petstore.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
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 typescript-node -o samples/client/petstore/typescript-node"
java $JAVA_OPTS -jar $executable $ags

View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\akka-scala -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l akka-scala -o samples\client\petstore\akka-scala
java %JAVA_OPTS% -jar %executable% %ags%

View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\android -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l android -o samples\client\petstore\android\default
java %JAVA_OPTS% -jar %executable% %ags%

View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\asyncscala -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l async-scala -o samples\client\petstore\async-scala
java %JAVA_OPTS% -jar %executable% %ags%

View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\clojure -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l clojure -o samples\client\petstore\clojure
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/csharp-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\csharp -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l csharp -o samples\client\petstore\csharp\SwaggerClientTest\Lib\SwaggerClient
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/dart-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\dart -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l dart -o samples\client\petstore\dart
java %JAVA_OPTS% -jar %executable% %ags%

View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\dynamic-html -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l dynamic-html -o samples\client\petstore\dynamic-html
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/flash-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\flash -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l flash -o samples\client\petstore\flash
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/html-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\html -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l html -o samples\client\petstore\html
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/java-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\java -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l java -o samples\client\petstore\java
java %JAVA_OPTS% -jar %executable% %ags%

View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\javascript -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l javascript -o samples\client\petstore\javascript
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/objc-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\objc -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l objc -o samples\client\petstore\objc
java %JAVA_OPTS% -DappName=PetstoreClient -jar %executable% %ags%

10
bin/windows/perl-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\perl -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l perl -o samples\client\petstore\perl
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/php-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\php -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l php -o samples\client\petstore\php
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/python-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\python -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l python -o samples\client\petstore\python
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/qt5cpp-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\qt5cpp -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l qt5cpp -o samples\client\petstore\qt5cpp
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/ruby-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\ruby -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l ruby -o samples\client\petstore\ruby
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/scala-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\scala -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l scala -o samples\client\petstore\scala
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/swift-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\swift -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l swift -o samples\client\petstore\swift
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/tizen-petstore.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\tizen -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l tizen -o samples\client\petstore\tizen
java %JAVA_OPTS% -jar %executable% %ags%

View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\typescript-angular -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l typescript-angular -o samples\client\petstore\typescript-angular
java %JAVA_OPTS% -jar %executable% %ags%

10
bin/windows/typescript-node.bat Executable file
View File

@@ -0,0 +1,10 @@
set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar
If Not Exist %executable% (
mvn clean package
)
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -t modules\swagger-codegen\src\main\resources\typescript-node -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l typescript-node -o samples\client\petstore\typescript-node
java %JAVA_OPTS% -jar %executable% %ags%

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-project</artifactId>
<version>2.1.2</version>
<version>2.1.5</version>
<relativePath>../..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -41,7 +41,7 @@
<version>2.3</version>
<executions>
<execution>
<id>reduced-pom</id>
<id>process-resources</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
@@ -52,15 +52,6 @@
<dependencyReducedPomLocation>
${java.io.tmpdir}/dependency-reduced-pom.xml
</dependencyReducedPomLocation>
</configuration>
</execution>
<execution>
<id>process-resources</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
@@ -79,26 +70,34 @@
<artifactId>swagger-codegen</artifactId>
<version>${project.version}</version>
</dependency>
<!--https://github.com/airlift/airline-->
<dependency>
<groupId>io.airlift</groupId>
<artifactId>airline</artifactId>
<version>0.7</version>
</dependency>
<dependency>
<groupId>com.googlecode.lambdaj</groupId>
<artifactId>lambdaj</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>${jmockit-version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -21,7 +21,7 @@ public class SwaggerCodegen {
public static void main(String[] args) {
Cli.CliBuilder<Runnable> builder = Cli.<Runnable>builder("swagger")
Cli.CliBuilder<Runnable> builder = Cli.<Runnable>builder("swagger-codegen-cli")
.withDescription("Swagger code generator CLI. More info on swagger.io")
.withDefaultCommand(Langs.class)
.withCommands(

View File

@@ -4,10 +4,7 @@ import io.airlift.airline.Command;
import io.airlift.airline.Option;
import io.swagger.codegen.CliOption;
import io.swagger.codegen.CodegenConfig;
import java.util.ServiceLoader;
import static java.util.ServiceLoader.load;
import io.swagger.codegen.CodegenConfigLoader;
@Command(name = "config-help", description = "Config help for chosen lang")
public class ConfigHelp implements Runnable {
@@ -16,36 +13,14 @@ public class ConfigHelp implements Runnable {
description = "language to get config help for")
private String lang;
/**
* Tries to load config class with SPI first, then with class name directly from classpath
*
* @param name name of config, or full qualified class name in classpath
* @return config class
*/
private static CodegenConfig forName(String name) {
ServiceLoader<CodegenConfig> loader = load(CodegenConfig.class);
for (CodegenConfig config : loader) {
if (config.getName().equals(name)) {
return config;
}
}
// else try to load directly
try {
return (CodegenConfig) Class.forName(name).newInstance();
} catch (Exception e) {
throw new RuntimeException("Can't load config class with name ".concat(name), e);
}
}
@Override
public void run() {
System.out.println();
CodegenConfig config = forName(lang);
CodegenConfig config = CodegenConfigLoader.forName(lang);
System.out.println("CONFIG OPTIONS");
for (CliOption langCliOption : config.cliOptions()) {
System.out.println("\t" + langCliOption.getOpt());
System.out.println("\t " + langCliOption.getDescription());
System.out.println("\t " + langCliOption.getOptionHelp().replaceAll("\n", "\n\t "));
System.out.println();
}
}

View File

@@ -1,23 +1,22 @@
package io.swagger.codegen.cmd;
import config.Config;
import config.ConfigParser;
import io.airlift.airline.Command;
import io.airlift.airline.Option;
import io.swagger.codegen.CliOption;
import io.swagger.codegen.ClientOptInput;
import io.swagger.codegen.ClientOpts;
import io.swagger.codegen.CodegenConfig;
import io.swagger.codegen.CodegenConstants;
import io.swagger.codegen.DefaultGenerator;
import io.swagger.models.Swagger;
import io.swagger.parser.SwaggerParser;
import io.swagger.codegen.cmd.utils.OptionUtils;
import io.swagger.codegen.config.CodegenConfigurator;
import org.apache.commons.lang3.tuple.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.ServiceLoader;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static java.util.ServiceLoader.load;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
/**
@@ -31,10 +30,8 @@ public class Generate implements Runnable {
public static final Logger LOG = LoggerFactory.getLogger(Generate.class);
public static final String TEMPLATE_DIR_PARAM = "templateDir";
@Option(name = {"-v", "--verbose"}, description = "verbose mode")
private boolean verbose;
private Boolean verbose;
@Option(name = {"-l", "--lang"}, title = "language", required = true,
description = "client language to generate (maybe class name in classpath, required)")
@@ -66,93 +63,187 @@ public class Generate implements Runnable {
"Supported options can be different for each language. Run config-help -l {lang} command for language specific config options.")
private String configFile;
/**
* Tries to load config class with SPI first, then with class name directly from classpath
*
* @param name name of config, or full qualified class name in classpath
* @return config class
*/
private static CodegenConfig forName(String name) {
ServiceLoader<CodegenConfig> loader = load(CodegenConfig.class);
for (CodegenConfig config : loader) {
if (config.getName().equals(name)) {
return config;
}
}
@Option(name = {"-s", "--skip-overwrite"}, title = "skip overwrite", description = "specifies if the existing files should be " +
"overwritten during the generation.")
private Boolean skipOverwrite;
// else try to load directly
try {
return (CodegenConfig) Class.forName(name).newInstance();
} catch (Exception e) {
throw new RuntimeException("Can't load config class with name ".concat(name), e);
}
}
@Option(name = {"--api-package"}, title = "api package", description = CodegenConstants.API_PACKAGE_DESC)
private String apiPackage;
@Option(name = {"--model-package"}, title = "model package", description = CodegenConstants.MODEL_PACKAGE_DESC)
private String modelPackage;
@Option(name = {"--instantiation-types"}, title = "instantiation types", description = "sets instantiation type mappings in the format of type=instantiatedType,type=instantiatedType." +
"For example (in Java): array=ArrayList,map=HashMap. In other words array types will get instantiated as ArrayList in generated code.")
private String instantiationTypes;
@Option(name = {"--type-mappings"}, title = "type mappings", description = "sets mappings between swagger spec types and generated code types " +
"in the format of swaggerType=generatedType,swaggerType=generatedType. For example: array=List,map=Map,string=String")
private String typeMappings;
@Option(name = {"--additional-properties"}, title = "additional properties", description = "sets additional properties that can be referenced by the mustache templates in the format of name=value,name=value")
private String additionalProperties;
@Option(name = {"--language-specific-primitives"}, title = "language specific primitives",
description = "specifies additional language specific primitive types in the format of type1,type2,type3,type3. For example: String,boolean,Boolean,Double")
private String languageSpecificPrimitives;
@Option(name = {"--import-mappings"}, title = "import mappings",
description = "specifies mappings between a given class and the import that should be used for that class in the format of type=import,type=import")
private String importMappings;
@Option(name = {"--invoker-package"}, title = "invoker package", description = CodegenConstants.INVOKER_PACKAGE_DESC)
private String invokerPackage;
@Option(name = {"--group-id"}, title = "group id", description = CodegenConstants.GROUP_ID_DESC)
private String groupId;
@Option(name = {"--artifact-id"}, title = "artifact id", description = CodegenConstants.ARTIFACT_ID_DESC)
private String artifactId;
@Option(name = {"--artifact-version"}, title = "artifact version", description = CodegenConstants.ARTIFACT_VERSION_DESC)
private String artifactVersion;
@Option(name = {"--library"}, title = "library", description = CodegenConstants.LIBRARY_DESC)
private String library;
@Override
public void run() {
verbosed(verbose);
setSystemProperties();
//attempt to read from config file
CodegenConfigurator configurator = CodegenConfigurator.fromFile(configFile);
ClientOptInput input = new ClientOptInput();
if (isNotEmpty(auth)) {
input.setAuth(auth);
//if a config file wasn't specified or we were unable to read it
if(configurator == null) {
//createa a fresh configurator
configurator = new CodegenConfigurator();
}
CodegenConfig config = forName(lang);
config.setOutputDir(new File(output).getAbsolutePath());
if (null != templateDir) {
config.additionalProperties().put(TEMPLATE_DIR_PARAM, new File(templateDir).getAbsolutePath());
//now override with any specified parameters
if (verbose != null) {
configurator.setVerbose(verbose);
}
if (null != configFile) {
Config genConfig = ConfigParser.read(configFile);
if (null != genConfig) {
for (CliOption langCliOption : config.cliOptions()) {
if (genConfig.hasOption(langCliOption.getOpt())) {
config.additionalProperties().put(langCliOption.getOpt(), genConfig.getOption(langCliOption.getOpt()));
}
}
}
if(skipOverwrite != null) {
configurator.setSkipOverwrite(skipOverwrite);
}
input.setConfig(config);
if(isNotEmpty(spec)) {
configurator.setInputSpec(spec);
}
Swagger swagger = new SwaggerParser().read(spec, input.getAuthorizationValues(), true);
new DefaultGenerator().opts(input.opts(new ClientOpts()).swagger(swagger)).generate();
if(isNotEmpty(lang)) {
configurator.setLang(lang);
}
if(isNotEmpty(output)) {
configurator.setOutputDir(output);
}
if(isNotEmpty(auth)) {
configurator.setAuth(auth);
}
if(isNotEmpty(templateDir)) {
configurator.setTemplateDir(templateDir);
}
if(isNotEmpty(apiPackage)) {
configurator.setApiPackage(apiPackage);
}
if(isNotEmpty(modelPackage)) {
configurator.setModelPackage(modelPackage);
}
if(isNotEmpty(invokerPackage)) {
configurator.setInvokerPackage(invokerPackage);
}
if(isNotEmpty(groupId)) {
configurator.setGroupId(groupId);
}
if(isNotEmpty(artifactId)) {
configurator.setArtifactId(artifactId);
}
if(isNotEmpty(artifactVersion)) {
configurator.setArtifactVersion(artifactVersion);
}
if(isNotEmpty(library)) {
configurator.setLibrary(library);
}
setSystemProperties(configurator);
setInstantiationTypes(configurator);
setImportMappings(configurator);
setTypeMappings(configurator);
setAdditionalProperties(configurator);
setLanguageSpecificPrimitives(configurator);
final ClientOptInput clientOptInput = configurator.toClientOptInput();
new DefaultGenerator().opts(clientOptInput).generate();
}
private void setSystemProperties() {
if (systemProperties != null && systemProperties.length() > 0) {
for (String property : systemProperties.split(",")) {
int ix = property.indexOf('=');
if (ix > 0 && ix < property.length() - 1) {
System.setProperty(property.substring(0, ix), property.substring(ix + 1));
}
}
private void setSystemProperties(CodegenConfigurator configurator) {
final Map<String, String> map = createMapFromKeyValuePairs(systemProperties);
for (Map.Entry<String, String> entry : map.entrySet()) {
configurator.addSystemProperty(entry.getKey(), entry.getValue());
}
}
/**
* If true parameter, adds system properties which enables debug mode in generator
*
* @param verbose - if true, enables debug mode
*/
private void verbosed(boolean verbose) {
if (!verbose) {
return;
private void setInstantiationTypes(CodegenConfigurator configurator) {
final Map<String, String> map = createMapFromKeyValuePairs(instantiationTypes);
for (Map.Entry<String, String> entry : map.entrySet()) {
configurator.addInstantiationType(entry.getKey(), entry.getValue());
}
LOG.info("\nVERBOSE MODE: ON. Additional debug options are injected" +
"\n - [debugSwagger] prints the swagger specification as interpreted by the codegen" +
"\n - [debugModels] prints models passed to the template engine" +
"\n - [debugOperations] prints operations passed to the template engine" +
"\n - [debugSupportingFiles] prints additional data passed to the template engine");
}
System.setProperty("debugSwagger", "");
System.setProperty("debugModels", "");
System.setProperty("debugOperations", "");
System.setProperty("debugSupportingFiles", "");
private void setImportMappings(CodegenConfigurator configurator) {
final Map<String, String> map = createMapFromKeyValuePairs(importMappings);
for (Map.Entry<String, String> entry : map.entrySet()) {
configurator.addImportMapping(entry.getKey(), entry.getValue());
}
}
private void setTypeMappings(CodegenConfigurator configurator) {
final Map<String, String> map = createMapFromKeyValuePairs(typeMappings);
for (Map.Entry<String, String> entry : map.entrySet()) {
configurator.addTypeMapping(entry.getKey(), entry.getValue());
}
}
private void setAdditionalProperties(CodegenConfigurator configurator) {
final Map<String, String> map = createMapFromKeyValuePairs(additionalProperties);
for (Map.Entry<String, String> entry : map.entrySet()) {
configurator.addAdditionalProperty(entry.getKey(), entry.getValue());
}
}
private void setLanguageSpecificPrimitives(CodegenConfigurator configurator) {
final Set<String> set = createSetFromCsvList(languageSpecificPrimitives);
for (String item : set) {
configurator.addLanguageSpecificPrimitive(item);
}
}
private Set<String> createSetFromCsvList(String csvProperty) {
final List<String> values = OptionUtils.splitCommaSeparatedList(csvProperty);
return new HashSet<String>(values);
}
private Map createMapFromKeyValuePairs(String commaSeparatedKVPairs) {
final List<Pair<String, String>> pairs = OptionUtils.parseCommaSeparatedTuples(commaSeparatedKVPairs);
Map result = new HashMap();
for (Pair<String, String> pair : pairs) {
result.put(pair.getLeft(), pair.getRight());
}
return result;
}
}

View File

@@ -1,6 +1,7 @@
package io.swagger.codegen.cmd;
import ch.lambdaj.function.convert.Converter;
import com.google.common.base.CaseFormat;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.samskivert.mustache.Mustache;
@@ -9,7 +10,6 @@ import io.airlift.airline.Option;
import io.swagger.codegen.DefaultGenerator;
import io.swagger.codegen.SupportingFile;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -55,7 +55,7 @@ public class Meta implements Runnable {
final File targetDir = new File(outputFolder);
LOG.info("writing to folder [{}]", targetDir.getAbsolutePath());
String mainClass = StringUtils.capitalize(name) + "Generator";
String mainClass = CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, name) + "Generator";
List<SupportingFile> supportingFiles = ImmutableList.of(
new SupportingFile("pom.mustache", "", "pom.xml"),
@@ -68,11 +68,18 @@ public class Meta implements Runnable {
"src/main/resources/META-INF/services", "io.swagger.codegen.CodegenConfig")
);
String swaggerVersion = this.getClass().getPackage().getImplementationVersion();
// if the code is running outside of the jar (i.e. from the IDE), it will not have the version available.
// let's default it with something.
if (swaggerVersion==null) {
swaggerVersion = "2.1.3";
}
Map<String, Object> data = new ImmutableMap.Builder<String, Object>()
.put("generatorPackage", targetPackage)
.put("generatorClass", mainClass)
.put("name", name)
.put("fullyQualifiedGeneratorClass", targetPackage + "." + mainClass).build();
.put("fullyQualifiedGeneratorClass", targetPackage + "." + mainClass)
.put("swaggerCodegenVersion", swaggerVersion).build();
with(supportingFiles).convert(processFiles(targetDir, data));
@@ -128,6 +135,7 @@ public class Meta implements Runnable {
*/
private Mustache.TemplateLoader loader(final DefaultGenerator generator) {
return new Mustache.TemplateLoader() {
@Override
public Reader getTemplate(String name) {
return generator.getTemplateReader(TEMPLATE_DIR_CLASSPATH
+ File.separator + name.concat(MUSTACHE_EXTENSION));

View File

@@ -0,0 +1,43 @@
package io.swagger.codegen.cmd.utils;
import org.apache.commons.lang3.tuple.Pair;
import java.util.ArrayList;
import java.util.List;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
public class OptionUtils {
public static List<Pair<String, String>> parseCommaSeparatedTuples(String input) {
List<Pair<String, String>> results = new ArrayList<Pair<String, String>>();
final List<String> tuples = splitCommaSeparatedList(input);
for (String tuple : tuples) {
int ix = tuple.indexOf('=');
if (ix > 0 && ix < tuple.length() - 1) {
final Pair<String, String> pair = Pair.of(tuple.substring(0, ix), tuple.substring(ix + 1));
results.add(pair);
}
}
return results;
}
public static List<String> splitCommaSeparatedList(String input) {
List<String> results = new ArrayList<String>();
if(input != null && !input.isEmpty()) {
for (String value : input.split(",")) {
if(isNotEmpty(value))
results.add(value);
}
}
return results;
}
}

View File

@@ -0,0 +1,357 @@
package io.swagger.codegen.cmd;
import io.swagger.codegen.ClientOptInput;
import io.swagger.codegen.DefaultGenerator;
import io.swagger.codegen.SwaggerCodegen;
import io.swagger.codegen.config.CodegenConfigurator;
import mockit.Expectations;
import mockit.FullVerifications;
import mockit.Injectable;
import mockit.Mocked;
import mockit.Verifications;
import org.apache.commons.lang3.ArrayUtils;
import org.testng.annotations.Test;
public class GenerateTest {
@Mocked
CodegenConfigurator configurator;
@Injectable
ClientOptInput clientOptInput;
@Mocked
DefaultGenerator generator;
@Test
public void testVerbose() throws Exception {
setupAndRunGenericTest("-v");
new FullVerifications() {{
configurator.setVerbose(true);
times = 1;
}};
setupAndRunGenericTest("--verbose");
new FullVerifications() {{
configurator.setVerbose(true);
times = 1;
}};
}
@Test
public void testRequiredArgs_ShortArgs() throws Exception {
setupAndRunTest("-i", "swagger.yaml", "-l", "java", "-o", "src/main/java", false, null);
new FullVerifications() {{
}};
}
@Test
public void testRequiredArgs_LongArgs() throws Exception {
setupAndRunTest("--input-spec", "swagger.yaml", "--lang", "java", "--output", "src/main/java", false, null);
new FullVerifications() {{
}};
}
@Test
public void testTemplateDir() throws Exception {
final String templateDir = "src/main/resources/customTemplates";
setupAndRunGenericTest("--template-dir", templateDir);
new FullVerifications() {{
configurator.setTemplateDir(templateDir);
times = 1;
}};
setupAndRunGenericTest("-t", templateDir);
new FullVerifications() {{
configurator.setTemplateDir(templateDir);
times = 1;
}};
}
@Test
public void testAuth() throws Exception {
final String auth = "hello:world";
setupAndRunGenericTest("--auth", auth);
new FullVerifications() {{
configurator.setAuth(auth);
times = 1;
}};
setupAndRunGenericTest("-a", auth);
new FullVerifications() {{
configurator.setAuth(auth);
times = 1;
}};
setupAndRunGenericTest();
new FullVerifications() {{
configurator.setAuth(anyString);
times = 0;
}};
}
@Test
public void testSystemProperties() throws Exception {
setupAndRunGenericTest("-D", "hello=world,foo=bar");
new FullVerifications() {{
configurator.addSystemProperty("hello", "world");
times = 1;
configurator.addSystemProperty("foo", "bar");
times = 1;
}};
setupAndRunGenericTest("-D", "hello=world,key=,foo=bar");
new FullVerifications() {{
configurator.addSystemProperty("hello", "world");
times = 1;
configurator.addSystemProperty("foo", "bar");
times = 1;
configurator.addSystemProperty("key", anyString);
times = 0;
}};
}
@Test
public void testConfig() throws Exception {
setupAndRunTest("-i", "swagger.yaml", "-l", "java", "-o", "src/main/java", true, "config.json", "-c", "config.json");
new FullVerifications(){{}};
setupAndRunTest("-i", "swagger.yaml", "-l", "java", "-o", "src/main/java", true, "config.json", "--config", "config.json");
new FullVerifications(){{}};
}
@Test
public void testSkipOverwrite() throws Exception {
setupAndRunGenericTest("-s");
new FullVerifications(){{
configurator.setSkipOverwrite(true); times=1;
}};
setupAndRunGenericTest("--skip-overwrite");
new FullVerifications(){{
configurator.setSkipOverwrite(true); times=1;
}};
}
@Test
public void testApiPackage() throws Exception {
final String value = "io.foo.bar.api";
setupAndRunGenericTest("--api-package", value);
new FullVerifications(){{
configurator.setApiPackage(value); times=1;
}};
}
@Test
public void testModelPackage() throws Exception {
final String value = "io.foo.bar.api";
setupAndRunGenericTest("--model-package", value);
new FullVerifications(){{
configurator.setModelPackage(value); times=1;
}};
}
@Test
public void testInstantiationTypes() throws Exception {
setupAndRunGenericTest("--instantiation-types", "hello=world,key=,foo=bar");
new FullVerifications() {{
configurator.addInstantiationType("hello", "world");
times = 1;
configurator.addInstantiationType("foo", "bar");
times = 1;
configurator.addInstantiationType("key", anyString);
times = 0;
}};
}
@Test
public void testTypeMappings() throws Exception {
setupAndRunGenericTest("--type-mappings", "hello=world,key=,foo=bar");
new FullVerifications() {{
configurator.addTypeMapping("hello", "world");
times = 1;
configurator.addTypeMapping("foo", "bar");
times = 1;
configurator.addTypeMapping("key", anyString);
times = 0;
}};
}
@Test
public void testAdditionalProperties() throws Exception {
setupAndRunGenericTest("--additional-properties", "hello=world,key=,foo=bar");
new FullVerifications() {{
configurator.addAdditionalProperty("hello", "world");
times = 1;
configurator.addAdditionalProperty("foo", "bar");
times = 1;
configurator.addAdditionalProperty("key", anyString);
times = 0;
}};
}
@Test
public void testLanguageSpecificPrimitives() throws Exception {
setupAndRunGenericTest("--language-specific-primitives", "foo,bar,,hello,world");
new FullVerifications() {{
configurator.addLanguageSpecificPrimitive("foo");
times = 1;
configurator.addLanguageSpecificPrimitive("bar");
times = 1;
configurator.addLanguageSpecificPrimitive("hello");
times = 1;
configurator.addLanguageSpecificPrimitive("world");
times = 1;
}};
}
@Test
public void testImportMappings() throws Exception {
setupAndRunGenericTest("--import-mappings", "hello=world,key=,foo=bar");
new FullVerifications() {{
configurator.addImportMapping("hello", "world");
times = 1;
configurator.addImportMapping("foo", "bar");
times = 1;
configurator.addImportMapping("key", anyString);
times = 0;
}};
}
@Test
public void testInvokerPackage() throws Exception {
final String value = "io.foo.bar.api";
setupAndRunGenericTest("--invoker-package", value);
new FullVerifications(){{
configurator.setInvokerPackage(value); times=1;
}};
}
@Test
public void testGroupId() throws Exception {
final String value = "io.foo.bar.api";
setupAndRunGenericTest("--group-id", value);
new FullVerifications(){{
configurator.setGroupId(value); times=1;
}};
}
@Test
public void testArtifactId() throws Exception {
final String value = "awesome-api";
setupAndRunGenericTest("--artifact-id", value);
new FullVerifications(){{
configurator.setArtifactId(value); times=1;
}};
}
@Test
public void testArtifactVersion() throws Exception {
final String value = "1.2.3";
setupAndRunGenericTest("--artifact-version", value);
new FullVerifications(){{
configurator.setArtifactVersion(value); times=1;
}};
}
@Test
public void testLibrary() throws Exception {
final String value = "library1";
setupAndRunGenericTest("--library", value);
new FullVerifications(){{
configurator.setLibrary(value); times=1;
}};
}
private void setupAndRunTest(String specFlag, final String spec, String langFlag, final String lang,
String outputDirFlag, final String outputDir, boolean configuratorFromFile,
final String configFile, String... additionalParameters) {
final String[] commonArgs = {"generate", langFlag, lang, outputDirFlag, outputDir, specFlag, spec};
String[] argsToUse = ArrayUtils.addAll(commonArgs, additionalParameters);
if (configuratorFromFile) {
new Expectations(){{
CodegenConfigurator.fromFile(configFile);
times = 1;
result = configurator;
}};
} else {
new Expectations() {{
CodegenConfigurator.fromFile(anyString);
result = null;
new CodegenConfigurator();
times = 1;
result = configurator;
}};
}
new Expectations() {{
configurator.toClientOptInput();
times = 1;
result = clientOptInput;
new DefaultGenerator();
times = 1;
result = generator;
generator.opts(clientOptInput);
times = 1;
result = generator;
generator.generate();
times = 1;
}};
SwaggerCodegen.main(argsToUse);
new Verifications() {{
configurator.setLang(lang);
times = 1;
configurator.setInputSpec(spec);
times = 1;
configurator.setOutputDir(outputDir);
}};
}
private void setupAndRunGenericTest(String... additionalParameters) {
setupAndRunTest("-i", "swagger.yaml", "-l", "java", "-o", "src/main/java", false, null, additionalParameters);
}
}

View File

@@ -0,0 +1,52 @@
package io.swagger.codegen.cmd.utils;
import org.apache.commons.lang3.tuple.Pair;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
public class OptionUtilsTest {
@Test
public void splitCommaSeparatedList() throws Exception {
doCommaSeparatedListTest("a,b,c", Arrays.asList("a", "b", "c"));
doCommaSeparatedListTest("a,,c", Arrays.asList("a", "c"));
doCommaSeparatedListTest("", new ArrayList<String>());
doCommaSeparatedListTest(null, new ArrayList<String>());
}
@Test
public void testParseCommaSeparatedTuples() throws Exception {
doTupleListTest("a=1,b=2,c=3", Arrays.asList(Pair.of("a", "1"), Pair.of("b", "2"), Pair.of("c", "3")));
doTupleListTest("a=1,,c=3", Arrays.asList(Pair.of("a", "1"), Pair.of("c", "3")));
doTupleListTest("a=1,xyz,c=3", Arrays.asList(Pair.of("a", "1"), Pair.of("c", "3")));
doTupleListTest("a=1,=,c=3", Arrays.asList(Pair.of("a", "1"), Pair.of("c", "3")));
doTupleListTest("", new ArrayList<Pair<String, String>>());
doTupleListTest(null, new ArrayList<Pair<String, String>>());
}
private void doTupleListTest(String input, List<Pair<String, String>> expectedResults) {
final List<Pair<String, String>> result = OptionUtils.parseCommaSeparatedTuples(input);
assertNotNull(result);
assertEquals(result.size(), expectedResults.size());
for (int i = 0; i < expectedResults.size(); i++) {
final Pair<String, String> actualPair = result.get(i);
final Pair<String, String> expected = expectedResults.get(i);
assertEquals(actualPair, expected);
}
}
private void doCommaSeparatedListTest(String csvStr, List<String> expectedResults) {
final List<String> result = OptionUtils.splitCommaSeparatedList(csvStr);
assertNotNull(result);
assertEquals(result.size(), expectedResults.size());
for (int i = 0; i < expectedResults.size(); i++) {
assertEquals(result.get(i), expectedResults.get(i));
}
}
}

View File

@@ -0,0 +1,53 @@
swagger-codegen-maven-plugin
============================
A Maven plugin to support the [swagger](http://swagger.io) code generation project
Usage
============================
Add to your `build->plugins` section (default phase is `generate-sources` phase)
```xml
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.1.5-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/api.yaml</inputSpec>
<language>java</language>
<configOptions>
<sourceFolder>src/gen/java/main</sourceFolder>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
```
Followed by:
```
mvn clean compile
```
### General Configuration parameters
- `inputSpec` - OpenAPI Spec file path
- `language` - target generation language
- `output` - target output path (default is `${project.build.directory}/generated-sources/swagger`)
- `templateDirectory` - directory with mustache templates
- `addCompileSourceRoot` - add the output directory to the project as a source root (`true` by default)
- `modelPackage` - the package to use for generated model objects/classes
- `apiPackage` - the package to use for generated api objects/classes
- `invokerPackage` - the package to use for the generated invoker objects
- `configOptions` - a map of language-specific parameters (see below)
- `configHelp` - dumps the configuration help for the specified library (generates no sources)
### Sample configuration
- Please see [an example configuration](examples) for using the plugin

View File

@@ -0,0 +1,115 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.swagger</groupId>
<artifactId>sample-project</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>sample-project</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<!-- activate the plugin -->
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.1.5-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<!-- specify the swagger yaml -->
<inputSpec>swagger.yaml</inputSpec>
<!-- target to generate -->
<language>java</language>
<!-- pass any necessary config options -->
<configOptions>
<dateLibrary>java8</dateLibrary>
</configOptions>
<!-- override the default library to jersey2 -->
<library>jersey2</library>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<!-- dependencies are needed for the client being generated -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${swagger-annotations-version}</version>
</dependency>
<!-- HTTP client: jersey-client -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.22.1</version>
</dependency>
<!-- JSON processing: jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${jodatime-version}</version>
</dependency>
<!-- Base64 encoding that works in both JVM and Android -->
<dependency>
<groupId>com.brsanthu</groupId>
<artifactId>migbase64</artifactId>
<version>2.2</version>
</dependency>
<!-- test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<swagger-annotations-version>1.5.0</swagger-annotations-version>
<jersey-version>2.12</jersey-version>
<jackson-version>2.4.2</jackson-version>
<jodatime-version>2.3</jodatime-version>
<maven-plugin-version>1.0.0</maven-plugin-version>
<junit-version>4.8.1</junit-version>
</properties>
</project>

View File

@@ -0,0 +1,702 @@
---
swagger: "2.0"
info:
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."
version: "1.0.0"
title: "Swagger Petstore"
termsOfService: "http://swagger.io/terms/"
contact:
email: "apiteam@swagger.io"
license:
name: "Apache 2.0"
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
host: "petstore.swagger.io"
basePath: "/v2"
tags:
- name: "pet"
description: "Everything about your Pets"
externalDocs:
description: "Find out more"
url: "http://swagger.io"
- name: "store"
description: "Access to Petstore orders"
- name: "user"
description: "Operations about user"
externalDocs:
description: "Find out more about our store"
url: "http://swagger.io"
schemes:
- "http"
paths:
/pet:
post:
tags:
- "pet"
summary: "Add a new pet to the store"
description: ""
operationId: "addPet"
consumes:
- "application/json"
- "application/xml"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Pet object that needs to be added to the store"
required: true
schema:
$ref: "#/definitions/Pet"
responses:
405:
description: "Invalid input"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
put:
tags:
- "pet"
summary: "Update an existing pet"
description: ""
operationId: "updatePet"
consumes:
- "application/json"
- "application/xml"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Pet object that needs to be added to the store"
required: true
schema:
$ref: "#/definitions/Pet"
responses:
400:
description: "Invalid ID supplied"
404:
description: "Pet not found"
405:
description: "Validation exception"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
/pet/findByStatus:
get:
tags:
- "pet"
summary: "Finds Pets by status"
description: "Multiple status values can be provided with comma seperated strings"
operationId: "findPetsByStatus"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "status"
in: "query"
description: "Status values that need to be considered for filter"
required: true
type: "array"
items:
type: "string"
enum:
- "available"
- "pending"
- "sold"
default: "available"
collectionFormat: "csv"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/Pet"
400:
description: "Invalid status value"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
/pet/findByTags:
get:
tags:
- "pet"
summary: "Finds Pets by tags"
description: "Muliple tags can be provided with comma seperated strings. Use\
\ tag1, tag2, tag3 for testing."
operationId: "findPetsByTags"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "tags"
in: "query"
description: "Tags to filter by"
required: true
type: "array"
items:
type: "string"
collectionFormat: "csv"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/Pet"
400:
description: "Invalid tag value"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
/pet/{petId}:
get:
tags:
- "pet"
summary: "Find pet by ID"
description: "Returns a single pet"
operationId: "getPetById"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "petId"
in: "path"
description: "ID of pet to return"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Pet"
400:
description: "Invalid ID supplied"
404:
description: "Pet not found"
security:
- api_key: []
post:
tags:
- "pet"
summary: "Updates a pet in the store with form data"
description: ""
operationId: "updatePetWithForm"
consumes:
- "application/x-www-form-urlencoded"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "petId"
in: "path"
description: "ID of pet that needs to be updated"
required: true
type: "integer"
format: "int64"
- name: "name"
in: "formData"
description: "Updated name of the pet"
required: false
type: "string"
- name: "status"
in: "formData"
description: "Updated status of the pet"
required: false
type: "string"
responses:
405:
description: "Invalid input"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
delete:
tags:
- "pet"
summary: "Deletes a pet"
description: ""
operationId: "deletePet"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "api_key"
in: "header"
required: false
type: "string"
- name: "petId"
in: "path"
description: "Pet id to delete"
required: true
type: "integer"
format: "int64"
responses:
400:
description: "Invalid pet value"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
/pet/{petId}/uploadImage:
post:
tags:
- "pet"
summary: "uploads an image"
description: ""
operationId: "uploadFile"
consumes:
- "multipart/form-data"
produces:
- "application/json"
parameters:
- name: "petId"
in: "path"
description: "ID of pet to update"
required: true
type: "integer"
format: "int64"
- name: "additionalMetadata"
in: "formData"
description: "Additional data to pass to server"
required: false
type: "string"
- name: "file"
in: "formData"
description: "file to upload"
required: false
type: "file"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/ApiResponse"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
/store/inventory:
get:
tags:
- "store"
summary: "Returns pet inventories by status"
description: "Returns a map of status codes to quantities"
operationId: "getInventory"
produces:
- "application/json"
parameters: []
responses:
200:
description: "successful operation"
schema:
type: "object"
additionalProperties:
type: "integer"
format: "int32"
security:
- api_key: []
/store/order:
post:
tags:
- "store"
summary: "Place an order for a pet"
description: ""
operationId: "placeOrder"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "order placed for purchasing the pet"
required: true
schema:
$ref: "#/definitions/Order"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Order"
400:
description: "Invalid Order"
/store/order/{orderId}:
get:
tags:
- "store"
summary: "Find purchase order by ID"
description: "For valid response try integer IDs with value <= 5 or > 10. Other\
\ values will generated exceptions"
operationId: "getOrderById"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "orderId"
in: "path"
description: "ID of pet that needs to be fetched"
required: true
type: "integer"
maximum: 5.0
minimum: 1.0
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Order"
400:
description: "Invalid ID supplied"
404:
description: "Order not found"
delete:
tags:
- "store"
summary: "Delete purchase order by ID"
description: "For valid response try integer IDs with value < 1000. Anything\
\ above 1000 or nonintegers will generate API errors"
operationId: "deleteOrder"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "orderId"
in: "path"
description: "ID of the order that needs to be deleted"
required: true
type: "string"
minimum: 1.0
responses:
400:
description: "Invalid ID supplied"
404:
description: "Order not found"
/user:
post:
tags:
- "user"
summary: "Create user"
description: "This can only be done by the logged in user."
operationId: "createUser"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Created user object"
required: true
schema:
$ref: "#/definitions/User"
responses:
default:
description: "successful operation"
/user/createWithArray:
post:
tags:
- "user"
summary: "Creates list of users with given input array"
description: ""
operationId: "createUsersWithArrayInput"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "List of user object"
required: true
schema:
type: "array"
items:
$ref: "#/definitions/User"
responses:
default:
description: "successful operation"
/user/createWithList:
post:
tags:
- "user"
summary: "Creates list of users with given input array"
description: ""
operationId: "createUsersWithListInput"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "List of user object"
required: true
schema:
type: "array"
items:
$ref: "#/definitions/User"
responses:
default:
description: "successful operation"
/user/login:
get:
tags:
- "user"
summary: "Logs user into the system"
description: ""
operationId: "loginUser"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "username"
in: "query"
description: "The user name for login"
required: true
type: "string"
- name: "password"
in: "query"
description: "The password for login in clear text"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "string"
headers:
X-Rate-Limit:
type: "integer"
format: "int32"
description: "calls per hour allowed by the user"
X-Expires-After:
type: "string"
format: "date-time"
description: "date in UTC when toekn expires"
400:
description: "Invalid username/password supplied"
/user/logout:
get:
tags:
- "user"
summary: "Logs out current logged in user session"
description: ""
operationId: "logoutUser"
produces:
- "application/xml"
- "application/json"
parameters: []
responses:
default:
description: "successful operation"
/user/{username}:
get:
tags:
- "user"
summary: "Get user by user name"
description: ""
operationId: "getUserByName"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "username"
in: "path"
description: "The name that needs to be fetched. Use user1 for testing. "
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/User"
400:
description: "Invalid username supplied"
404:
description: "User not found"
put:
tags:
- "user"
summary: "Updated user"
description: "This can only be done by the logged in user."
operationId: "updateUser"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "username"
in: "path"
description: "name that need to be deleted"
required: true
type: "string"
- in: "body"
name: "body"
description: "Updated user object"
required: true
schema:
$ref: "#/definitions/User"
responses:
400:
description: "Invalid user supplied"
404:
description: "User not found"
delete:
tags:
- "user"
summary: "Delete user"
description: "This can only be done by the logged in user."
operationId: "deleteUser"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "username"
in: "path"
description: "The name that needs to be deleted"
required: true
type: "string"
responses:
400:
description: "Invalid username supplied"
404:
description: "User not found"
securityDefinitions:
petstore_auth:
type: "oauth2"
authorizationUrl: "http://petstore.swagger.io/api/oauth/dialog"
flow: "implicit"
scopes:
write:pets: "modify pets in your account"
read:pets: "read your pets"
api_key:
type: "apiKey"
name: "api_key"
in: "header"
definitions:
Order:
type: "object"
properties:
id:
type: "integer"
format: "int64"
petId:
type: "integer"
format: "int64"
quantity:
type: "integer"
format: "int32"
shipDate:
type: "string"
format: "date-time"
status:
type: "string"
description: "Order Status"
enum:
- "placed"
- "approved"
- "delivered"
complete:
type: "boolean"
default: false
xml:
name: "Order"
Category:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
xml:
name: "Category"
User:
type: "object"
properties:
id:
type: "integer"
format: "int64"
username:
type: "string"
firstName:
type: "string"
lastName:
type: "string"
email:
type: "string"
password:
type: "string"
phone:
type: "string"
userStatus:
type: "integer"
format: "int32"
description: "User Status"
xml:
name: "User"
Tag:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
xml:
name: "Tag"
Pet:
type: "object"
required:
- "name"
- "photoUrls"
properties:
id:
type: "integer"
format: "int64"
category:
$ref: "#/definitions/Category"
name:
type: "string"
example: "doggie"
photoUrls:
type: "array"
xml:
name: "photoUrl"
wrapped: true
items:
type: "string"
tags:
type: "array"
xml:
name: "tag"
wrapped: true
items:
$ref: "#/definitions/Tag"
status:
type: "string"
description: "pet status in the store"
enum:
- "available"
- "pending"
- "sold"
xml:
name: "Pet"
ApiResponse:
type: "object"
properties:
code:
type: "integer"
format: "int32"
type:
type: "string"
message:
type: "string"
externalDocs:
description: "Find out more about Swagger"
url: "http://swagger.io"

View File

@@ -0,0 +1,87 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-project</artifactId>
<version>2.1.5</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<name>swagger-codegen (maven-plugin)</name>
<packaging>maven-plugin</packaging>
<description>maven plugin to build modules from swagger codegen</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
<version>3.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.4</version>
<configuration>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
<id>mojo-descriptor</id>
<phase>process-classes</phase>
<goals>
<goal>descriptor</goal>
</goals>
</execution>
<execution>
<id>help-goal</id>
<goals>
<goal>helpmojo</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>

View File

@@ -0,0 +1,16 @@
package io.swagger.codegen.plugin;
/**
* User: lanwen
* Date: 24.03.15
* Time: 14:47
*/
public final class AdditionalParams {
public static final String TEMPLATE_DIR_PARAM = "templateDir";
public static final String MODEL_PACKAGE_PARAM = "modelPackage";
public static final String API_PACKAGE_PARAM = "apiPackage";
public static final String INVOKER_PACKAGE_PARAM = "invokerPackage";
public static final String LIBRARY_PARAM = "library";
private AdditionalParams() {}
}

View File

@@ -0,0 +1,203 @@
package io.swagger.codegen.plugin;
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import config.Config;
import config.ConfigParser;
import io.swagger.codegen.*;
import io.swagger.models.Swagger;
import io.swagger.parser.SwaggerParser;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import static io.swagger.codegen.plugin.AdditionalParams.*;
/**
* Goal which generates client/server code from a swagger json/yaml definition.
*/
@Mojo(name = "generate", defaultPhase = LifecyclePhase.GENERATE_SOURCES)
public class CodeGenMojo extends AbstractMojo {
/**
* Location of the output directory.
*/
@Parameter(name = "output",
property = "swagger.codegen.maven.plugin.output",
defaultValue = "${project.build.directory}/generated-sources/swagger")
private File output;
/**
* Location of the swagger spec, as URL or file.
*/
@Parameter(name = "inputSpec", required = true)
private String inputSpec;
/**
* Folder containing the template files.
*/
@Parameter(name = "templateDirectory")
private File templateDirectory;
/**
* The package to use for generated model objects/classes
*/
@Parameter(name = "modelPackage")
private String modelPackage;
/**
* The package to use for generated api objects/classes
*/
@Parameter(name = "apiPackage")
private String apiPackage;
/**
* The package to use for the generated invoker objects
*/
@Parameter(name = "invokerPackage")
private String invokerPackage;
/**
* Client language to generate.
*/
@Parameter(name = "language", required = true)
private String language;
/**
* Path to separate json configuration file.
*/
@Parameter(name = "configurationFile", required = false)
private String configurationFile;
/**
* Sets the library
*/
@Parameter(name = "library", required = false)
private String library;
/**
* A map of language-specific parameters as passed with the -c option to the command line
*/
@Parameter(name = "configOptions")
private Map configOptions;
/**
* Add the output directory to the project as a source root, so that the
* generated java types are compiled and included in the project artifact.
*/
@Parameter(defaultValue = "true")
private boolean addCompileSourceRoot = true;
@Parameter
protected Map<String, String> environmentVariables = new HashMap<String, String>();
@Parameter
private boolean configHelp = false;
/**
* The project being built.
*/
@Parameter(readonly = true, required = true, defaultValue = "${project}")
private MavenProject project;
@Override
public void execute() throws MojoExecutionException {
Swagger swagger = new SwaggerParser().read(inputSpec);
CodegenConfig config = CodegenConfigLoader.forName(language);
config.setOutputDir(output.getAbsolutePath());
if (environmentVariables != null) {
for(String key : environmentVariables.keySet()) {
String value = environmentVariables.get(key);
if(value == null) {
// don't put null values
value = "";
}
System.setProperty(key, value);
}
}
if (null != library) {
config.setLibrary(library);
}
if (null != templateDirectory) {
config.additionalProperties().put(TEMPLATE_DIR_PARAM, templateDirectory.getAbsolutePath());
}
if (null != modelPackage) {
config.additionalProperties().put(MODEL_PACKAGE_PARAM, modelPackage);
}
if (null != apiPackage) {
config.additionalProperties().put(API_PACKAGE_PARAM, apiPackage);
}
if (null != invokerPackage) {
config.additionalProperties().put(INVOKER_PACKAGE_PARAM, invokerPackage);
}
if (configOptions != null) {
for (CliOption langCliOption : config.cliOptions()) {
if (configOptions.containsKey(langCliOption.getOpt())) {
config.additionalProperties().put(langCliOption.getOpt(),
configOptions.get(langCliOption.getOpt()));
}
}
}
if (null != configurationFile) {
Config genConfig = ConfigParser.read(configurationFile);
if (null != genConfig) {
for (CliOption langCliOption : config.cliOptions()) {
if (genConfig.hasOption(langCliOption.getOpt())) {
config.additionalProperties().put(langCliOption.getOpt(), genConfig.getOption(langCliOption.getOpt()));
}
}
} else {
throw new RuntimeException("Unable to read configuration file");
}
}
ClientOptInput input = new ClientOptInput().opts(new ClientOpts()).swagger(swagger);
input.setConfig(config);
if(configHelp) {
for (CliOption langCliOption : config.cliOptions()) {
System.out.println("\t" + langCliOption.getOpt());
System.out.println("\t " + langCliOption.getOptionHelp().replaceAll("\n", "\n\t "));
System.out.println();
}
return;
}
try {
new DefaultGenerator().opts(input).generate();
} catch (Exception e) {
// Maven logs exceptions thrown by plugins only if invoked with -e
// I find it annoying to jump through hoops to get basic diagnostic information,
// so let's log it in any case:
getLog().error(e);
throw new MojoExecutionException("Code generation failed. See above for the full exception.");
}
if (addCompileSourceRoot) {
project.addCompileSourceRoot(output.toString());
}
}
}

1
modules/swagger-codegen/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/.settings/

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-project</artifactId>
<version>2.1.2</version>
<version>2.1.5</version>
<relativePath>../..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -70,44 +70,6 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>add-source</goal>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<configuration>
<recompileMode>incremental</recompileMode>
</configuration>
<jvmArgs>
<jvmArg>-Xmx384m</jvmArg>
</jvmArgs>
<args>
<arg>-target:jvm-1.6</arg>
<arg>-deprecation</arg>
</args>
<launchers>
<launcher>
<id>run-scalatest</id>
<mainClass>org.scalatest.tools.Runner</mainClass>
<args>
<arg>-p</arg>
<arg>${project.build.testOutputDirectory}</arg>
</args>
<jvmArgs>
<jvmArg>-Xmx512m</jvmArg>
</jvmArgs>
</launcher>
</launchers>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
@@ -141,24 +103,19 @@
<artifactId>maven-release-plugin</artifactId>
<version>2.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>${scala-maven-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<releaseProfiles>release</releaseProfiles>
<goals>sign</goals>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
@@ -166,43 +123,6 @@
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<scala-version>${scala-version}</scala-version>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>prepare-package</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/scala</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release-sign-artifacts</id>
@@ -234,6 +154,7 @@
<reporting>
<outputDirectory>target/site</outputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
@@ -248,11 +169,6 @@
<excludePackageNames/>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>${scala-maven-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
@@ -322,6 +238,11 @@
<artifactId>slf4j-api</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
@@ -333,15 +254,21 @@
<version>${commons-cli-version}</version>
</dependency>
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_2.11</artifactId>
<version>${scala-test-version}</version>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala-version}</version>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>${reflections-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>${jmockit-version}</version>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -60,10 +60,46 @@ public abstract class AbstractGenerator {
throw new RuntimeException("can't load template " + name);
}
private String getCPResourcePath(String name) {
/**
* Get the template file path with template dir prepended, and use the
* library template if exists.
*/
public String getFullTemplateFile(CodegenConfig config, String templateFile) {
String library = config.getLibrary();
if (library != null && !"".equals(library)) {
String libTemplateFile = config.templateDir() + File.separator +
"libraries" + File.separator + library + File.separator +
templateFile;
if (new File(libTemplateFile).exists()) {
return libTemplateFile;
}
libTemplateFile = config.embeddedTemplateDir() + File.separator +
"libraries" + File.separator + library + File.separator +
templateFile;
if (embeddedTemplateExists(libTemplateFile)) {
// Fall back to the template file embedded/packaged in the JAR file...
return libTemplateFile;
}
}
String template = config.templateDir() + File.separator + templateFile;
if (new File(template).exists()) {
return template;
} else {
// Fall back to the template file embedded/packaged in the JAR file...
return config.embeddedTemplateDir() + File.separator + templateFile;
}
}
public boolean embeddedTemplateExists(String name) {
return this.getClass().getClassLoader().getResource(getCPResourcePath(name)) != null;
}
public String getCPResourcePath(String name) {
if (!"/".equals(File.separator)) {
return name.replaceAll(Pattern.quote(File.separator), "/");
}
return name;
}
}
}

View File

@@ -1,14 +1,32 @@
package io.swagger.codegen;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.properties.BooleanProperty;
import io.swagger.models.properties.StringProperty;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.LinkedHashMap;
import java.util.Map;
public class CliOption {
private final String opt;
private String description;
private String type;
private String defaultValue;
private Map<String, String> enumValues;
public CliOption(String opt, String description) {
this.opt = opt;
this.description = description;
this(opt, description, StringProperty.TYPE);
}
public CliOption(String opt, String description, String type) {
this.opt = opt;
this.description = description;
this.type = type;
}
@ApiModelProperty(name = "optionName")
public String getOpt() {
return opt;
}
@@ -20,4 +38,66 @@ public class CliOption {
public void setDescription(String description) {
this.description = description;
}
@ApiModelProperty(value = "Data type is based on the types supported by the JSON-Schema")
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getDefault() {
return defaultValue;
}
public void setDefault(String defaultValue) {
this.defaultValue = defaultValue;
}
public CliOption defaultValue(String defaultValue) {
this.defaultValue = defaultValue;
return this;
}
public CliOption addEnum(String value, String description) {
if (this.enumValues == null) {
this.enumValues = new LinkedHashMap<String, String>();
}
if (!enumValues.containsKey(value)) {
enumValues.put(value, description);
}
return this;
}
public Map<String, String> getEnum() {
return enumValues;
}
public void setEnum(Map<String, String> enumValues) {
this.enumValues = enumValues;
}
public static CliOption newBoolean(String opt, String description) {
return new CliOption(opt, description, BooleanProperty.TYPE).defaultValue(Boolean.FALSE.toString());
}
public static CliOption newString(String opt, String description) {
return new CliOption(opt, description, StringProperty.TYPE);
}
@JsonIgnore
public String getOptionHelp() {
StringBuilder sb = new StringBuilder(description);
if(defaultValue != null) {
sb.append(" (Default: ").append(defaultValue).append(")");
}
if (enumValues != null) {
for (Map.Entry<String, String> entry : enumValues.entrySet()) {
sb.append("\n ").append(entry.getKey()).append(" - ").append(entry.getValue());
}
}
return sb.toString();
}
}

View File

@@ -1,6 +1,7 @@
package io.swagger.codegen;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.codegen.auth.AuthParser;
import io.swagger.models.Swagger;
import io.swagger.models.auth.AuthorizationValue;
@@ -9,8 +10,10 @@ import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
public class ClientOptInput {
protected CodegenConfig config;
private CodegenConfig config;
private ClientOpts opts;
private Swagger swagger;
private List<AuthorizationValue> auths;
@@ -25,42 +28,28 @@ public class ClientOptInput {
return this;
}
public ClientOptInput config(CodegenConfig codegenConfig) {
this.setConfig(codegenConfig);
return this;
}
@Deprecated
public ClientOptInput auth(String urlEncodedAuthString) {
this.setAuth(urlEncodedAuthString);
return this;
}
@Deprecated
public String getAuth() {
if (auths != null) {
StringBuilder b = new StringBuilder();
for (AuthorizationValue v : auths) {
try {
if (b.toString().length() > 0) {
b.append(",");
}
b.append(URLEncoder.encode(v.getKeyName(), "UTF-8"))
.append(":")
.append(URLEncoder.encode(v.getValue(), "UTF-8"));
} catch (Exception e) {
// continue
e.printStackTrace();
}
}
return b.toString();
} else {
return null;
}
return AuthParser.reconstruct(auths);
}
@Deprecated
public void setAuth(String urlEncodedAuthString) {
List<AuthorizationValue> auths = new ArrayList<AuthorizationValue>();
if (urlEncodedAuthString != null && !"".equals(urlEncodedAuthString)) {
String[] parts = urlEncodedAuthString.split(",");
for (String part : parts) {
String[] kvPair = part.split(":");
if (kvPair.length == 2) {
auths.add(new AuthorizationValue(URLDecoder.decode(kvPair[0]), URLDecoder.decode(kvPair[1]), "header"));
}
}
}
this.auths = auths;
this.auths = AuthParser.parse(urlEncodedAuthString);
}
@Deprecated
public List<AuthorizationValue> getAuthorizationValues() {
return auths;
}

View File

@@ -1,5 +1,7 @@
package io.swagger.codegen;
import config.Config;
import config.ConfigParser;
import io.swagger.models.Swagger;
import io.swagger.parser.SwaggerParser;
import org.apache.commons.cli.BasicParser;
@@ -9,6 +11,7 @@ import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -41,6 +44,7 @@ public class Codegen extends DefaultGenerator {
options.addOption("t", "template-dir", true, "folder containing the template files");
options.addOption("d", "debug-info", false, "prints additional info for debugging");
options.addOption("a", "auth", true, "adds authorization headers when fetching the swagger definitions remotely. Pass in a URL-encoded string of name:header with a comma separating multiple values");
options.addOption("c", "config", true, "location of the configuration file");
ClientOptInput clientOptInput = new ClientOptInput();
ClientOpts clientOpts = new ClientOpts();
@@ -84,8 +88,20 @@ public class Codegen extends DefaultGenerator {
if (cmd.hasOption("i")) {
swagger = new SwaggerParser().read(cmd.getOptionValue("i"), clientOptInput.getAuthorizationValues(), true);
}
if (cmd.hasOption("c")) {
String configFile = cmd.getOptionValue("c");
Config genConfig = ConfigParser.read(configFile);
config = clientOptInput.getConfig();
if (null != genConfig && null != config) {
for (CliOption langCliOption : config.cliOptions()) {
if (genConfig.hasOption(langCliOption.getOpt())) {
config.additionalProperties().put(langCliOption.getOpt(), genConfig.getOption(langCliOption.getOpt()));
}
}
}
}
if (cmd.hasOption("t")) {
clientOpts.getProperties().put("templateDir", String.valueOf(cmd.getOptionValue("t")));
clientOpts.getProperties().put(CodegenConstants.TEMPLATE_DIR, String.valueOf(cmd.getOptionValue("t")));
}
} catch (Exception e) {
usage(options);
@@ -145,4 +161,4 @@ public class Codegen extends DefaultGenerator {
configString = sb.toString();
}
}
}
}

View File

@@ -29,6 +29,8 @@ public interface CodegenConfig {
String templateDir();
String embeddedTemplateDir();
String modelFileFolder();
String modelPackage();
@@ -65,6 +67,10 @@ public interface CodegenConfig {
CodegenModel fromModel(String name, Model model);
CodegenModel fromModel(String name, Model model, Map<String, Model> allDefinitions);
CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation, Map<String, Model> definitions, Swagger swagger);
CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation, Map<String, Model> definitions);
List<CodegenSecurity> fromSecurity(Map<String, SecuritySchemeDefinition> schemes);
@@ -81,6 +87,10 @@ public interface CodegenConfig {
Map<String, String> modelTemplateFiles();
Set<String> languageSpecificPrimitives();
void preprocessSwagger(Swagger swagger);
void processSwagger(Swagger swagger);
String toApiFilename(String name);
@@ -99,7 +109,24 @@ public interface CodegenConfig {
Map<String, Object> postProcessSupportingFileData(Map<String, Object> objs);
void postProcessModelProperty(CodegenModel model, CodegenProperty property);
void postProcessParameter(CodegenParameter parameter);
String apiFilename(String templateName, String tag);
boolean shouldOverwrite(String filename);
boolean isSkipOverwrite();
void setSkipOverwrite(boolean skipOverwrite);
Map<String, String> supportedLibraries();
void setLibrary(String library);
/**
* Library template (sub-template).
*/
String getLibrary();
}

View File

@@ -0,0 +1,34 @@
package io.swagger.codegen;
import java.util.ServiceLoader;
import static java.util.ServiceLoader.load;
public class CodegenConfigLoader {
/**
* Tries to load config class with SPI first, then with class name directly from classpath
*
* @param name name of config, or full qualified class name in classpath
* @return config class
*/
public static CodegenConfig forName(String name) {
ServiceLoader<CodegenConfig> loader = load(CodegenConfig.class);
StringBuilder availableConfigs = new StringBuilder();
for (CodegenConfig config : loader) {
if (config.getName().equals(name)) {
return config;
}
availableConfigs.append(config.getName()).append("\n");
}
// else try to load directly
try {
return (CodegenConfig) Class.forName(name).newInstance();
} catch (Exception e) {
throw new RuntimeException("Can't load config class with name ".concat(name) + " Available: " + availableConfigs.toString(), e);
}
}
}

View File

@@ -0,0 +1,57 @@
package io.swagger.codegen;
/**
* A class for storing constants that are used throughout the project.
*/
public class CodegenConstants {
public static final String API_PACKAGE = "apiPackage";
public static final String API_PACKAGE_DESC = "package for generated api classes";
public static final String MODEL_PACKAGE = "modelPackage";
public static final String MODEL_PACKAGE_DESC = "package for generated models";
public static final String TEMPLATE_DIR = "templateDir";
public static final String INVOKER_PACKAGE = "invokerPackage";
public static final String INVOKER_PACKAGE_DESC = "root package for generated code";
public static final String GROUP_ID = "groupId";
public static final String GROUP_ID_DESC = "groupId in generated pom.xml";
public static final String ARTIFACT_ID = "artifactId";
public static final String ARTIFACT_ID_DESC = "artifactId in generated pom.xml";
public static final String ARTIFACT_VERSION = "artifactVersion";
public static final String ARTIFACT_VERSION_DESC = "artifact version in generated pom.xml";
public static final String SOURCE_FOLDER = "sourceFolder";
public static final String SOURCE_FOLDER_DESC = "source folder for generated code";
public static final String IMPL_FOLDER = "implFolder";
public static final String IMPL_FOLDER_DESC = "folder for generated implementation code";
public static final String LOCAL_VARIABLE_PREFIX = "localVariablePrefix";
public static final String LOCAL_VARIABLE_PREFIX_DESC = "prefix for generated code members and local variables";
public static final String SERIALIZABLE_MODEL = "serializableModel";
public static final String SERIALIZABLE_MODEL_DESC = "boolean - toggle \"implements Serializable\" for generated models";
public static final String SERIALIZE_BIG_DECIMAL_AS_STRING = "bigDecimalAsString";
public static final String SERIALIZE_BIG_DECIMAL_AS_STRING_DESC = "Treat BigDecimal values as Strings to avoid precision loss.";
public static final String LIBRARY = "library";
public static final String LIBRARY_DESC = "library template (sub-template)";
public static final String SORT_PARAMS_BY_REQUIRED_FLAG = "sortParamsByRequiredFlag";
public static final String SORT_PARAMS_BY_REQUIRED_FLAG_DESC = "Sort method arguments to place required parameters before optional parameters.";
public static final String ENSURE_UNIQUE_PARAMS = "ensureUniqueParams";
public static final String ENSURE_UNIQUE_PARAMS_DESC = "Whether to ensure parameter names are unique in an operation (rename parameters that are not).";
public static final String PACKAGE_NAME = "packageName";
public static final String PACKAGE_VERSION = "packageVersion";
public static final String POD_VERSION = "podVersion";
public static final String OPTIONAL_METHOD_ARGUMENT = "optionalMethodArgument";
}

View File

@@ -2,17 +2,22 @@ package io.swagger.codegen;
import io.swagger.models.ExternalDocs;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.*;
public class CodegenModel {
public String parent;
public String name, classname, description, classVarName, modelJson;
public String parent, parentSchema;
public String name, classname, description, classVarName, modelJson, dataType;
public String unescapedDescription;
public String defaultValue;
public List<CodegenProperty> vars = new ArrayList<CodegenProperty>();
public Set<String> imports = new HashSet<String>();
public Boolean hasVars, emptyVars, hasMoreModels, hasEnums;
public List<String> allowableValues;
// list of all required parameters
public Set<String> mandatory = new HashSet<String>();
public Set<String> imports = new TreeSet<String>();
public Boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum;
public ExternalDocs externalDocs;
}
public Map<String, Object> vendorExtensions;
}

View File

@@ -10,9 +10,10 @@ import java.util.Set;
public class CodegenOperation {
public final List<CodegenProperty> responseHeaders = new ArrayList<CodegenProperty>();
public Boolean hasConsumes, hasProduces, hasParams, returnTypeIsPrimitive,
returnSimpleType, subresourceOperation, isMapContainer, isListContainer,
hasMore = Boolean.TRUE, isMultipart;
public Boolean hasAuthMethods, hasConsumes, hasProduces, hasParams, hasOptionalParams,
returnTypeIsPrimitive, returnSimpleType, subresourceOperation, isMapContainer,
isListContainer, isMultipart, hasMore = Boolean.TRUE,
isResponseBinary = Boolean.FALSE, hasReference = Boolean.FALSE;
public String path, operationId, returnType, httpMethod, returnBaseType,
returnContainer, summary, notes, baseName, defaultResponse;
public List<Map<String, String>> consumes, produces;
@@ -29,7 +30,61 @@ public class CodegenOperation {
public Set<String> imports = new HashSet<String>();
public List<Map<String, String>> examples;
public ExternalDocs externalDocs;
public Map<String, Object> vendorExtensions;
public String nickname; // legacy support
/**
* Check if there's at least one parameter
*
* @return true if parameter exists, false otherwise
*/
private boolean nonempty(List<CodegenParameter> params) {
return params != null && params.size() > 0;
}
/**
* Check if there's at least one body parameter
*
* @return true if body parameter exists, false otherwise
*/
public boolean getHasBodyParam() {
return nonempty(bodyParams);
}
/**
* Check if there's at least one query parameter
*
* @return true if query parameter exists, false otherwise
*/
public boolean getHasQueryParams() {
return nonempty(queryParams);
}
/**
* Check if there's at least one header parameter
*
* @return true if header parameter exists, false otherwise
*/
public boolean getHasHeaderParams() {
return nonempty(headerParams);
}
/**
* Check if there's at least one path parameter
*
* @return true if path parameter exists, false otherwise
*/
public boolean getHasPathParams() {
return nonempty(pathParams);
}
/**
* Check if there's at least one form parameter
*
* @return true if any form parameter exists, false otherwise
*/
public boolean getHasFormParams() {
return nonempty(formParams);
}
// legacy support
public String nickname;
}

View File

@@ -1,10 +1,20 @@
package io.swagger.codegen;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
public class CodegenParameter {
public Boolean isFormParam, isQueryParam, isPathParam, isHeaderParam,
isCookieParam, isBodyParam, isFile, notFile, hasMore, isContainer, secondaryParam;
isCookieParam, isBodyParam, isFile, notFile, hasMore, isContainer,
secondaryParam, isBinary, isCollectionFormatMulti;
public String baseName, paramName, dataType, collectionFormat, description, baseType, defaultValue;
public String jsonSchema;
public boolean isEnum;
public List<String> _enum;
public Map<String, Object> allowableValues;
public Map<String, Object> vendorExtensions;
/**
* Determines whether this parameter is mandatory. If the parameter is in "path",
@@ -13,6 +23,51 @@ public class CodegenParameter {
*/
public Boolean required;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor17.
*/
public Number maximum;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor17
*/
public Boolean exclusiveMaximum;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor21
*/
public Number minimum;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor21
*/
public Boolean exclusiveMinimum;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor26
*/
public Integer maxLength;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor29
*/
public Integer minLength;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor33
*/
public String pattern;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor42
*/
public Integer maxItems;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor45
*/
public Integer minItems;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor49
*/
public Boolean uniqueItems;
/**
* See http://json-schema.org/latest/json-schema-validation.html#anchor14
*/
public Number multipleOf;
public CodegenParameter copy() {
CodegenParameter output = new CodegenParameter();
output.isFile = this.isFile;
@@ -24,6 +79,7 @@ public class CodegenParameter {
output.paramName = this.paramName;
output.dataType = this.dataType;
output.collectionFormat = this.collectionFormat;
output.isCollectionFormatMulti = this.isCollectionFormatMulti;
output.description = this.description;
output.baseType = this.baseType;
output.isFormParam = this.isFormParam;
@@ -33,9 +89,29 @@ public class CodegenParameter {
output.isCookieParam = this.isCookieParam;
output.isBodyParam = this.isBodyParam;
output.required = this.required;
output.maximum = this.maximum;
output.exclusiveMaximum = this.exclusiveMaximum;
output.minimum = this.minimum;
output.exclusiveMinimum = this.exclusiveMinimum;
output.maxLength = this.maxLength;
output.minLength = this.minLength;
output.pattern = this.pattern;
output.maxItems = this.maxItems;
output.minItems = this.minItems;
output.uniqueItems = this.uniqueItems;
output.multipleOf = this.multipleOf;
output.jsonSchema = this.jsonSchema;
output.defaultValue = this.defaultValue;
output.isEnum = this.isEnum;
if (this._enum != null) {
output._enum = new ArrayList<String>(this._enum);
}
if (this.allowableValues != null) {
output.allowableValues = new HashMap<String, Object>(this.allowableValues);
}
output.vendorExtensions = this.vendorExtensions;
return output;
}
}

View File

@@ -5,7 +5,9 @@ import java.util.Map;
public class CodegenProperty {
public String baseName, complexType, getter, setter, description, datatype, datatypeWithEnum,
name, min, max, defaultValue, baseType, containerType;
name, min, max, defaultValue, defaultValueWithParam, baseType, containerType;
public String unescapedDescription;
/**
* maxLength validation for strings, see http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.2.1
@@ -29,9 +31,117 @@ public class CodegenProperty {
public Double maximum;
public Boolean exclusiveMinimum;
public Boolean exclusiveMaximum;
public Boolean hasMore = null, required = null, secondaryParam = null;
public Boolean hasMore, required, secondaryParam;
public Boolean isPrimitiveType, isContainer, isNotContainer;
public boolean isEnum;
public Boolean isReadOnly = false;
public List<String> _enum;
public Map<String, Object> allowableValues;
public CodegenProperty items;
public Map<String, Object> vendorExtensions;
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final CodegenProperty other = (CodegenProperty) obj;
if ((this.baseName == null) ? (other.baseName != null) : !this.baseName.equals(other.baseName)) {
return false;
}
if ((this.complexType == null) ? (other.complexType != null) : !this.complexType.equals(other.complexType)) {
return false;
}
if ((this.getter == null) ? (other.getter != null) : !this.getter.equals(other.getter)) {
return false;
}
if ((this.setter == null) ? (other.setter != null) : !this.setter.equals(other.setter)) {
return false;
}
if ((this.description == null) ? (other.description != null) : !this.description.equals(other.description)) {
return false;
}
if ((this.datatype == null) ? (other.datatype != null) : !this.datatype.equals(other.datatype)) {
return false;
}
if ((this.datatypeWithEnum == null) ? (other.datatypeWithEnum != null) : !this.datatypeWithEnum.equals(other.datatypeWithEnum)) {
return false;
}
if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
return false;
}
if ((this.min == null) ? (other.min != null) : !this.min.equals(other.min)) {
return false;
}
if ((this.max == null) ? (other.max != null) : !this.max.equals(other.max)) {
return false;
}
if ((this.defaultValue == null) ? (other.defaultValue != null) : !this.defaultValue.equals(other.defaultValue)) {
return false;
}
if ((this.baseType == null) ? (other.baseType != null) : !this.baseType.equals(other.baseType)) {
return false;
}
if ((this.containerType == null) ? (other.containerType != null) : !this.containerType.equals(other.containerType)) {
return false;
}
if (this.maxLength != other.maxLength && (this.maxLength == null || !this.maxLength.equals(other.maxLength))) {
return false;
}
if (this.minLength != other.minLength && (this.minLength == null || !this.minLength.equals(other.minLength))) {
return false;
}
if ((this.pattern == null) ? (other.pattern != null) : !this.pattern.equals(other.pattern)) {
return false;
}
if ((this.example == null) ? (other.example != null) : !this.example.equals(other.example)) {
return false;
}
if ((this.jsonSchema == null) ? (other.jsonSchema != null) : !this.jsonSchema.equals(other.jsonSchema)) {
return false;
}
if (this.minimum != other.minimum && (this.minimum == null || !this.minimum.equals(other.minimum))) {
return false;
}
if (this.maximum != other.maximum && (this.maximum == null || !this.maximum.equals(other.maximum))) {
return false;
}
if (this.exclusiveMinimum != other.exclusiveMinimum && (this.exclusiveMinimum == null || !this.exclusiveMinimum.equals(other.exclusiveMinimum))) {
return false;
}
if (this.exclusiveMaximum != other.exclusiveMaximum && (this.exclusiveMaximum == null || !this.exclusiveMaximum.equals(other.exclusiveMaximum))) {
return false;
}
if (this.required != other.required && (this.required == null || !this.required.equals(other.required))) {
return false;
}
if (this.secondaryParam != other.secondaryParam && (this.secondaryParam == null || !this.secondaryParam.equals(other.secondaryParam))) {
return false;
}
if (this.isPrimitiveType != other.isPrimitiveType && (this.isPrimitiveType == null || !this.isPrimitiveType.equals(other.isPrimitiveType))) {
return false;
}
if (this.isContainer != other.isContainer && (this.isContainer == null || !this.isContainer.equals(other.isContainer))) {
return false;
}
if (this.isNotContainer != other.isNotContainer && (this.isNotContainer == null || !this.isNotContainer.equals(other.isNotContainer))) {
return false;
}
if (this.isEnum != other.isEnum) {
return false;
}
if (this._enum != other._enum && (this._enum == null || !this._enum.equals(other._enum))) {
return false;
}
if (this.allowableValues != other.allowableValues && (this.allowableValues == null || !this.allowableValues.equals(other.allowableValues))) {
return false;
}
if (this.vendorExtensions != other.vendorExtensions && (this.vendorExtensions == null || !this.vendorExtensions.equals(other.vendorExtensions))) {
return false;
}
return true;
}
}

View File

@@ -15,6 +15,7 @@ public class CodegenResponse {
public Boolean primitiveType;
public Boolean isMapContainer;
public Boolean isListContainer;
public Boolean isBinary = Boolean.FALSE;
public Object schema;
public String jsonSchema;

View File

@@ -1,5 +1,8 @@
package io.swagger.codegen;
import java.util.List;
import java.util.Map;
public class CodegenSecurity {
public String name;
public String type;
@@ -7,4 +10,7 @@ public class CodegenSecurity {
// ApiKey specific
public String keyParamName;
public Boolean isKeyInQuery, isKeyInHeader;
// Oauth specific
public String flow, authorizationUrl, tokenUrl;
public List<Map<String, Object>> scopes;
}

View File

@@ -2,40 +2,30 @@ package io.swagger.codegen;
import com.samskivert.mustache.Mustache;
import com.samskivert.mustache.Template;
import io.swagger.models.Contact;
import io.swagger.models.Info;
import io.swagger.models.License;
import io.swagger.models.Model;
import io.swagger.models.Operation;
import io.swagger.models.Path;
import io.swagger.models.Swagger;
import io.swagger.models.*;
import io.swagger.models.auth.OAuth2Definition;
import io.swagger.models.auth.SecuritySchemeDefinition;
import io.swagger.models.parameters.Parameter;
import io.swagger.util.Json;
import org.apache.commons.io.IOUtils;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.io.*;
import java.util.*;
import static org.apache.commons.lang3.StringUtils.capitalize;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
public class DefaultGenerator extends AbstractGenerator implements Generator {
protected CodegenConfig config;
protected ClientOptInput opts = null;
protected Swagger swagger = null;
Logger LOGGER = LoggerFactory.getLogger(DefaultGenerator.class);
protected CodegenConfig config;
protected ClientOptInput opts;
protected Swagger swagger;
@Override
public Generator opts(ClientOptInput opts) {
this.opts = opts;
@@ -46,7 +36,55 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
return this;
}
@Override
public List<File> generate() {
Boolean generateApis = null;
Boolean generateModels = null;
Boolean generateSupportingFiles = null;
Set<String> modelsToGenerate = null;
Set<String> apisToGenerate = null;
Set<String> supportingFilesToGenerate = null;
// allows generating only models by specifying a CSV of models to generate, or empty for all
if(System.getProperty("models") != null) {
String modelNames = System.getProperty("models");
generateModels = true;
if(!modelNames.isEmpty()) {
modelsToGenerate = new HashSet<String>(Arrays.asList(modelNames.split(",")));
}
}
if(System.getProperty("apis") != null) {
String apiNames = System.getProperty("apis");
generateApis = true;
if(!apiNames.isEmpty()) {
apisToGenerate = new HashSet<String>(Arrays.asList(apiNames.split(",")));
}
}
if(System.getProperty("supportingFiles") != null) {
String supportingFiles = System.getProperty("supportingFiles");
generateSupportingFiles = true;
if(!supportingFiles.isEmpty()) {
supportingFilesToGenerate = new HashSet<String>(Arrays.asList(supportingFiles.split(",")));
}
}
if(generateApis == null && generateModels == null && generateSupportingFiles == null) {
// no specifics are set, generate everything
generateApis = true; generateModels = true; generateSupportingFiles = true;
}
else {
if(generateApis == null) {
generateApis = false;
}
if(generateModels == null) {
generateModels = false;
}
if(generateSupportingFiles == null) {
generateSupportingFiles = false;
}
}
if (swagger == null || config == null) {
throw new RuntimeException("missing swagger input or config!");
}
@@ -54,243 +92,329 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
Json.prettyPrint(swagger);
}
List<File> files = new ArrayList<File>();
try {
config.processOpts();
if (swagger.getInfo() != null) {
Info info = swagger.getInfo();
if (info.getTitle() != null) {
config.additionalProperties().put("appName", info.getTitle());
config.processOpts();
config.preprocessSwagger(swagger);
config.additionalProperties().put("generatedDate", DateTime.now().toString());
config.additionalProperties().put("generatorClass", config.getClass().toString());
if (swagger.getInfo() != null) {
Info info = swagger.getInfo();
if (info.getTitle() != null) {
config.additionalProperties().put("appName", info.getTitle());
}
if (info.getVersion() != null) {
config.additionalProperties().put("appVersion", info.getVersion());
}
if (info.getDescription() != null) {
config.additionalProperties().put("appDescription",
config.escapeText(info.getDescription()));
}
if (info.getContact() != null) {
Contact contact = info.getContact();
config.additionalProperties().put("infoUrl", contact.getUrl());
if (contact.getEmail() != null) {
config.additionalProperties().put("infoEmail", contact.getEmail());
}
if (info.getVersion() != null) {
config.additionalProperties().put("appVersion", info.getVersion());
}
if (info.getLicense() != null) {
License license = info.getLicense();
if (license.getName() != null) {
config.additionalProperties().put("licenseInfo", license.getName());
}
if (info.getDescription() != null) {
config.additionalProperties().put("appDescription",
config.escapeText(info.getDescription()));
if (license.getUrl() != null) {
config.additionalProperties().put("licenseUrl", license.getUrl());
}
if (info.getContact() != null) {
Contact contact = info.getContact();
config.additionalProperties().put("infoUrl", contact.getUrl());
if (contact.getEmail() != null) {
config.additionalProperties().put("infoEmail", contact.getEmail());
}
if (info.getVersion() != null) {
config.additionalProperties().put("version", info.getVersion());
}
}
StringBuilder hostBuilder = new StringBuilder();
String scheme;
if (swagger.getSchemes() != null && swagger.getSchemes().size() > 0) {
scheme = swagger.getSchemes().get(0).toValue();
} else {
scheme = "https";
}
hostBuilder.append(scheme);
hostBuilder.append("://");
if (swagger.getHost() != null) {
hostBuilder.append(swagger.getHost());
} else {
hostBuilder.append("localhost");
}
if (swagger.getBasePath() != null) {
hostBuilder.append(swagger.getBasePath());
}
String contextPath = swagger.getBasePath() == null ? "" : swagger.getBasePath();
String basePath = hostBuilder.toString();
String basePathWithoutHost = swagger.getBasePath();
// resolve inline models
InlineModelResolver inlineModelResolver = new InlineModelResolver();
inlineModelResolver.flatten(swagger);
List<Object> allOperations = new ArrayList<Object>();
List<Object> allModels = new ArrayList<Object>();
// models
Map<String, Model> definitions = swagger.getDefinitions();
if (definitions != null) {
List<String> sortedModelKeys = sortModelsByInheritance(definitions);
if(generateModels) {
if(modelsToGenerate != null && modelsToGenerate.size() > 0) {
List<String> updatedKeys = new ArrayList<String>();
for(String m : sortedModelKeys) {
if(modelsToGenerate.contains(m)) {
updatedKeys.add(m);
}
}
sortedModelKeys = updatedKeys;
}
for (String name : sortedModelKeys) {
try {
//don't generate models that have an import mapping
if(config.importMapping().containsKey(name)) {
continue;
}
Model model = definitions.get(name);
Map<String, Model> modelMap = new HashMap<String, Model>();
modelMap.put(name, model);
Map<String, Object> models = processModels(config, modelMap, definitions);
models.putAll(config.additionalProperties());
allModels.add(((List<Object>) models.get("models")).get(0));
for (String templateName : config.modelTemplateFiles().keySet()) {
String suffix = config.modelTemplateFiles().get(templateName);
String filename = config.modelFileFolder() + File.separator + config.toModelFilename(name) + suffix;
if (!config.shouldOverwrite(filename)) {
continue;
}
String templateFile = getFullTemplateFile(config, templateName);
String template = readTemplate(templateFile);
Template tmpl = Mustache.compiler()
.withLoader(new Mustache.TemplateLoader() {
@Override
public Reader getTemplate(String name) {
return getTemplateReader(getFullTemplateFile(config, name + ".mustache"));
}
})
.defaultValue("")
.compile(template);
writeToFile(filename, tmpl.execute(models));
files.add(new File(filename));
}
} catch (Exception e) {
throw new RuntimeException("Could not generate model '" + name + "'", e);
}
}
if (info.getLicense() != null) {
License license = info.getLicense();
if (license.getName() != null) {
config.additionalProperties().put("licenseInfo", license.getName());
}
if (license.getUrl() != null) {
config.additionalProperties().put("licenseUrl", license.getUrl());
}
}
if (System.getProperty("debugModels") != null) {
System.out.println("############ Model info ############");
Json.prettyPrint(allModels);
}
// apis
Map<String, List<CodegenOperation>> paths = processPaths(swagger.getPaths());
if(generateApis) {
if(apisToGenerate != null && apisToGenerate.size() > 0) {
Map<String, List<CodegenOperation>> updatedPaths = new TreeMap<String, List<CodegenOperation>>();
for(String m : paths.keySet()) {
if(apisToGenerate.contains(m)) {
updatedPaths.put(m, paths.get(m));
}
}
if (info.getVersion() != null) {
config.additionalProperties().put("version", info.getVersion());
}
paths = updatedPaths;
}
for (String tag : paths.keySet()) {
try {
List<CodegenOperation> ops = paths.get(tag);
Map<String, Object> operation = processOperations(config, tag, ops);
StringBuilder hostBuilder = new StringBuilder();
String scheme;
if (swagger.getSchemes() != null && swagger.getSchemes().size() > 0) {
scheme = swagger.getSchemes().get(0).toValue();
} else {
scheme = "https";
}
hostBuilder.append(scheme);
hostBuilder.append("://");
if (swagger.getHost() != null) {
hostBuilder.append(swagger.getHost());
} else {
hostBuilder.append("localhost");
}
if (swagger.getBasePath() != null) {
hostBuilder.append(swagger.getBasePath());
} else {
hostBuilder.append("/");
}
String contextPath = swagger.getBasePath() == null ? "/" : swagger.getBasePath();
String basePath = hostBuilder.toString();
operation.put("basePath", basePath);
operation.put("basePathWithoutHost", basePathWithoutHost);
operation.put("contextPath", contextPath);
operation.put("baseName", tag);
operation.put("modelPackage", config.modelPackage());
operation.putAll(config.additionalProperties());
operation.put("classname", config.toApiName(tag));
operation.put("classVarName", config.toApiVarName(tag));
operation.put("importPath", config.toApiImport(tag));
// Pass sortParamsByRequiredFlag through to the Mustache template...
boolean sortParamsByRequiredFlag = true;
if (this.config.additionalProperties().containsKey(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG)) {
sortParamsByRequiredFlag = Boolean.valueOf((String)this.config.additionalProperties().get(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG).toString());
}
operation.put("sortParamsByRequiredFlag", sortParamsByRequiredFlag);
List<Object> allOperations = new ArrayList<Object>();
List<Object> allModels = new ArrayList<Object>();
processMimeTypes(swagger.getConsumes(), operation, "consumes");
processMimeTypes(swagger.getProduces(), operation, "produces");
// models
Map<String, Model> definitions = swagger.getDefinitions();
if (definitions != null) {
for (String name : definitions.keySet()) {
Model model = definitions.get(name);
Map<String, Model> modelMap = new HashMap<String, Model>();
modelMap.put(name, model);
Map<String, Object> models = processModels(config, modelMap);
models.putAll(config.additionalProperties());
allOperations.add(new HashMap<String, Object>(operation));
for (int i = 0; i < allOperations.size(); i++) {
Map<String, Object> oo = (Map<String, Object>) allOperations.get(i);
if (i < (allOperations.size() - 1)) {
oo.put("hasMore", "true");
}
}
allModels.add(((List<Object>) models.get("models")).get(0));
for (String templateName : config.apiTemplateFiles().keySet()) {
String filename = config.apiFilename(templateName, tag);
if (!config.shouldOverwrite(filename) && new File(filename).exists()) {
continue;
}
for (String templateName : config.modelTemplateFiles().keySet()) {
String suffix = config.modelTemplateFiles().get(templateName);
String filename = config.modelFileFolder() + File.separator + config.toModelFilename(name) + suffix;
String template = readTemplate(config.templateDir() + File.separator + templateName);
String templateFile = getFullTemplateFile(config, templateName);
String template = readTemplate(templateFile);
Template tmpl = Mustache.compiler()
.withLoader(new Mustache.TemplateLoader() {
@Override
public Reader getTemplate(String name) {
return getTemplateReader(config.templateDir() + File.separator + name + ".mustache");
return getTemplateReader(getFullTemplateFile(config, name + ".mustache"));
}
})
.defaultValue("")
.compile(template);
writeToFile(filename, tmpl.execute(models));
writeToFile(filename, tmpl.execute(operation));
files.add(new File(filename));
}
} catch (Exception e) {
throw new RuntimeException("Could not generate api file for '" + tag + "'", e);
}
}
if (System.getProperty("debugModels") != null) {
System.out.println("############ Model info ############");
Json.prettyPrint(allModels);
}
}
if (System.getProperty("debugOperations") != null) {
System.out.println("############ Operation info ############");
Json.prettyPrint(allOperations);
}
// apis
Map<String, List<CodegenOperation>> paths = processPaths(swagger.getPaths());
for (String tag : paths.keySet()) {
List<CodegenOperation> ops = paths.get(tag);
Map<String, Object> operation = processOperations(config, tag, ops);
// supporting files
Map<String, Object> bundle = new HashMap<String, Object>();
bundle.putAll(config.additionalProperties());
bundle.put("apiPackage", config.apiPackage());
operation.put("basePath", basePath);
operation.put("contextPath", contextPath);
operation.put("baseName", tag);
operation.put("modelPackage", config.modelPackage());
operation.putAll(config.additionalProperties());
operation.put("classname", config.toApiName(tag));
operation.put("classVarName", config.toApiVarName(tag));
operation.put("importPath", config.toApiImport(tag));
Map<String, Object> apis = new HashMap<String, Object>();
apis.put("apis", allOperations);
if (swagger.getHost() != null) {
bundle.put("host", swagger.getHost());
}
bundle.put("swagger", this.swagger);
bundle.put("basePath", basePath);
bundle.put("scheme", scheme);
bundle.put("contextPath", contextPath);
bundle.put("apiInfo", apis);
bundle.put("models", allModels);
bundle.put("apiFolder", config.apiPackage().replace('.', File.separatorChar));
bundle.put("modelPackage", config.modelPackage());
List<CodegenSecurity> authMethods = config.fromSecurity(swagger.getSecurityDefinitions());
if (authMethods != null && !authMethods.isEmpty()) {
bundle.put("authMethods", authMethods);
bundle.put("hasAuthMethods", true);
}
if (swagger.getExternalDocs() != null) {
bundle.put("externalDocs", swagger.getExternalDocs());
}
for (int i = 0; i < allModels.size() - 1; i++) {
HashMap<String, CodegenModel> cm = (HashMap<String, CodegenModel>) allModels.get(i);
CodegenModel m = cm.get("model");
m.hasMoreModels = true;
}
processMimeTypes(swagger.getConsumes(), operation, "consumes");
processMimeTypes(swagger.getProduces(), operation, "produces");
config.postProcessSupportingFileData(bundle);
allOperations.add(new HashMap<String, Object>(operation));
for (int i = 0; i < allOperations.size(); i++) {
Map<String, Object> oo = (Map<String, Object>) allOperations.get(i);
if (i < (allOperations.size() - 1)) {
oo.put("hasMore", "true");
if (System.getProperty("debugSupportingFiles") != null) {
System.out.println("############ Supporting file info ############");
Json.prettyPrint(bundle);
}
if(generateSupportingFiles) {
for (SupportingFile support : config.supportingFiles()) {
try {
String outputFolder = config.outputFolder();
if (isNotEmpty(support.folder)) {
outputFolder += File.separator + support.folder;
}
}
for (String templateName : config.apiTemplateFiles().keySet()) {
String filename = config.apiFilename(templateName, tag);
if (new File(filename).exists() && !config.shouldOverwrite(filename)) {
File of = new File(outputFolder);
if (!of.isDirectory()) {
of.mkdirs();
}
String outputFilename = outputFolder + File.separator + support.destinationFilename;
if (!config.shouldOverwrite(outputFilename)) {
continue;
}
String template = readTemplate(config.templateDir() + File.separator + templateName);
Template tmpl = Mustache.compiler()
.withLoader(new Mustache.TemplateLoader() {
public Reader getTemplate(String name) {
return getTemplateReader(config.templateDir() + File.separator + name + ".mustache");
}
})
.defaultValue("")
.compile(template);
String templateFile = getFullTemplateFile(config, support.templateFile);
writeToFile(filename, tmpl.execute(operation));
files.add(new File(filename));
}
}
if (System.getProperty("debugOperations") != null) {
System.out.println("############ Operation info ############");
Json.prettyPrint(allOperations);
}
// supporting files
Map<String, Object> bundle = new HashMap<String, Object>();
bundle.putAll(config.additionalProperties());
bundle.put("apiPackage", config.apiPackage());
Map<String, Object> apis = new HashMap<String, Object>();
apis.put("apis", allOperations);
if (swagger.getHost() != null) {
bundle.put("host", swagger.getHost());
}
bundle.put("basePath", basePath);
bundle.put("scheme", scheme);
bundle.put("contextPath", contextPath);
bundle.put("apiInfo", apis);
bundle.put("models", allModels);
bundle.put("apiFolder", config.apiPackage().replace('.', File.separatorChar));
bundle.put("modelPackage", config.modelPackage());
bundle.put("authMethods", config.fromSecurity(swagger.getSecurityDefinitions()));
if (swagger.getExternalDocs() != null) {
bundle.put("externalDocs", swagger.getExternalDocs());
}
for (int i = 0; i < allModels.size() - 1; i++) {
HashMap<String, CodegenModel> cm = (HashMap<String, CodegenModel>) allModels.get(i);
CodegenModel m = cm.get("model");
m.hasMoreModels = true;
}
config.postProcessSupportingFileData(bundle);
if (System.getProperty("debugSupportingFiles") != null) {
System.out.println("############ Supporting file info ############");
Json.prettyPrint(bundle);
}
for (SupportingFile support : config.supportingFiles()) {
String outputFolder = config.outputFolder();
if (isNotEmpty(support.folder)) {
outputFolder += File.separator + support.folder;
}
File of = new File(outputFolder);
if (!of.isDirectory()) {
of.mkdirs();
}
String outputFilename = outputFolder + File.separator + support.destinationFilename;
if (support.templateFile.endsWith("mustache")) {
String template = readTemplate(config.templateDir() + File.separator + support.templateFile);
Template tmpl = Mustache.compiler()
.withLoader(new Mustache.TemplateLoader() {
public Reader getTemplate(String name) {
return getTemplateReader(config.templateDir() + File.separator + name + ".mustache");
}
})
.defaultValue("")
.compile(template);
writeToFile(outputFilename, tmpl.execute(bundle));
files.add(new File(outputFilename));
} else {
InputStream in = null;
try {
in = new FileInputStream(config.templateDir() + File.separator + support.templateFile);
} catch (Exception e) {
// continue
}
if (in == null) {
in = this.getClass().getClassLoader().getResourceAsStream(config.templateDir() + File.separator + support.templateFile);
}
File outputFile = new File(outputFilename);
OutputStream out = new FileOutputStream(outputFile, false);
if (in != null && out != null) {
IOUtils.copy(in, out);
} else {
if (in == null) {
System.out.println("can't open " + config.templateDir() + File.separator + support.templateFile + " for input");
boolean shouldGenerate = true;
if(supportingFilesToGenerate != null && supportingFilesToGenerate.size() > 0) {
if(supportingFilesToGenerate.contains(support.destinationFilename)) {
shouldGenerate = true;
}
if (out == null) {
System.out.println("can't open " + outputFile + " for output");
else {
shouldGenerate = false;
}
}
if(shouldGenerate) {
if (templateFile.endsWith("mustache")) {
String template = readTemplate(templateFile);
Template tmpl = Mustache.compiler()
.withLoader(new Mustache.TemplateLoader() {
@Override
public Reader getTemplate(String name) {
return getTemplateReader(getFullTemplateFile(config, name + ".mustache"));
}
})
.defaultValue("")
.compile(template);
files.add(outputFile);
writeToFile(outputFilename, tmpl.execute(bundle));
files.add(new File(outputFilename));
} else {
InputStream in = null;
try {
in = new FileInputStream(templateFile);
} catch (Exception e) {
// continue
}
if (in == null) {
in = this.getClass().getClassLoader().getResourceAsStream(getCPResourcePath(templateFile));
}
File outputFile = new File(outputFilename);
OutputStream out = new FileOutputStream(outputFile, false);
if (in != null && out != null) {
System.out.println("writing file " + outputFile);
IOUtils.copy(in, out);
} else {
if (in == null) {
System.out.println("can't open " + templateFile + " for input");
}
if (out == null) {
System.out.println("can't open " + outputFile + " for output");
}
}
files.add(outputFile);
}
}
} catch (Exception e) {
throw new RuntimeException("Could not generate supporting file '" + support + "'", e);
}
}
config.processSwagger(swagger);
} catch (Exception e) {
e.printStackTrace();
}
config.processSwagger(swagger);
return files;
}
@@ -315,17 +439,64 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
}
}
private List<String> sortModelsByInheritance(final Map<String, Model> definitions) {
List<String> sortedModelKeys = new ArrayList<String>(definitions.keySet());
Comparator<String> cmp = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
Model model1 = definitions.get(o1);
Model model2 = definitions.get(o2);
int model1InheritanceDepth = getInheritanceDepth(model1);
int model2InheritanceDepth = getInheritanceDepth(model2);
if (model1InheritanceDepth == model2InheritanceDepth) {
return 0;
} else if (model1InheritanceDepth > model2InheritanceDepth) {
return 1;
} else {
return -1;
}
}
private int getInheritanceDepth(Model model) {
int inheritanceDepth = 0;
Model parent = getParent(model);
while (parent != null) {
inheritanceDepth++;
parent = getParent(parent);
}
return inheritanceDepth;
}
private Model getParent(Model model) {
if (model instanceof ComposedModel) {
return definitions.get(((ComposedModel) model).getParent().getReference());
}
return null;
}
};
Collections.sort(sortedModelKeys, cmp);
return sortedModelKeys;
}
public Map<String, List<CodegenOperation>> processPaths(Map<String, Path> paths) {
Map<String, List<CodegenOperation>> ops = new HashMap<String, List<CodegenOperation>>();
for (String resourcePath : paths.keySet()) {
Path path = paths.get(resourcePath);
processOperation(resourcePath, "get", path.getGet(), ops);
processOperation(resourcePath, "put", path.getPut(), ops);
processOperation(resourcePath, "post", path.getPost(), ops);
processOperation(resourcePath, "delete", path.getDelete(), ops);
processOperation(resourcePath, "patch", path.getPatch(), ops);
processOperation(resourcePath, "options", path.getOptions(), ops);
processOperation(resourcePath, "get", path.getGet(), ops, path);
processOperation(resourcePath, "head", path.getHead(), ops, path);
processOperation(resourcePath, "put", path.getPut(), ops, path);
processOperation(resourcePath, "post", path.getPost(), ops, path);
processOperation(resourcePath, "delete", path.getDelete(), ops, path);
processOperation(resourcePath, "patch", path.getPatch(), ops, path);
processOperation(resourcePath, "options", path.getOptions(), ops, path);
}
return ops;
}
@@ -338,44 +509,110 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
return map.get(name);
}
public void processOperation(String resourcePath, String httpMethod, Operation operation, Map<String, List<CodegenOperation>> operations) {
public void processOperation(String resourcePath, String httpMethod, Operation operation, Map<String, List<CodegenOperation>> operations, Path path) {
if (operation != null) {
if (System.getProperty("debugOperations") != null) {
LOGGER.debug("processOperation: resourcePath= " + resourcePath + "\t;" + httpMethod + " " + operation + "\n");
}
List<String> tags = operation.getTags();
if (tags == null) {
tags = new ArrayList<String>();
tags.add("default");
}
/*
build up a set of parameter "ids" defined at the operation level
per the swagger 2.0 spec "A unique parameter is defined by a combination of a name and location"
i'm assuming "location" == "in"
*/
Set<String> operationParameters = new HashSet<String>();
if (operation.getParameters() != null) {
for (Parameter parameter : operation.getParameters()) {
operationParameters.add(generateParameterId(parameter));
}
}
//need to propagate path level down to the operation
if(path.getParameters() != null) {
for (Parameter parameter : path.getParameters()) {
//skip propagation if a parameter with the same name is already defined at the operation level
if (!operationParameters.contains(generateParameterId(parameter))) {
operation.addParameter(parameter);
}
}
}
for (String tag : tags) {
CodegenOperation co = config.fromOperation(resourcePath, httpMethod, operation, swagger.getDefinitions());
co.tags = new ArrayList<String>();
co.tags.add(sanitizeTag(tag));
config.addOperationToGroup(sanitizeTag(tag), resourcePath, operation, co, operations);
CodegenOperation co = null;
try {
co = config.fromOperation(resourcePath, httpMethod, operation, swagger.getDefinitions(), swagger);
co.tags = new ArrayList<String>();
co.tags.add(sanitizeTag(tag));
config.addOperationToGroup(sanitizeTag(tag), resourcePath, operation, co, operations);
List<Map<String, List<String>>> securities = operation.getSecurity();
if (securities == null) {
continue;
}
Map<String, SecuritySchemeDefinition> authMethods = new HashMap<String, SecuritySchemeDefinition>();
for (Map<String, List<String>> security : securities) {
if (security.size() != 1) {
//Not sure what to do
List<Map<String, List<String>>> securities = operation.getSecurity();
if (securities == null && swagger.getSecurity() != null) {
securities = new ArrayList<Map<String, List<String>>>();
for (SecurityRequirement sr : swagger.getSecurity()) {
securities.add(sr.getRequirements());
}
}
if (securities == null || securities.isEmpty()) {
continue;
}
String securityName = security.keySet().iterator().next();
SecuritySchemeDefinition securityDefinition = fromSecurity(securityName);
if (securityDefinition != null) {
authMethods.put(securityName, securityDefinition);
Map<String, SecuritySchemeDefinition> authMethods = new HashMap<String, SecuritySchemeDefinition>();
// NOTE: Use only the first security requirement for now.
// See the "security" field of "Swagger Object":
// https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#swagger-object
// "there is a logical OR between the security requirements"
if (securities.size() > 1) {
LOGGER.warn("More than 1 security requirements are found, using only the first one");
}
Map<String, List<String>> security = securities.get(0);
for (String securityName : security.keySet()) {
SecuritySchemeDefinition securityDefinition = fromSecurity(securityName);
if (securityDefinition != null) {
if(securityDefinition instanceof OAuth2Definition) {
OAuth2Definition oauth2Definition = (OAuth2Definition) securityDefinition;
OAuth2Definition oauth2Operation = new OAuth2Definition();
oauth2Operation.setType(oauth2Definition.getType());
oauth2Operation.setAuthorizationUrl(oauth2Definition.getAuthorizationUrl());
oauth2Operation.setFlow(oauth2Definition.getFlow());
oauth2Operation.setTokenUrl(oauth2Definition.getTokenUrl());
oauth2Operation.setScopes(new HashMap<String, String>());
for (String scope : security.get(securityName)) {
if (oauth2Definition.getScopes().containsKey(scope)) {
oauth2Operation.addScope(scope, oauth2Definition.getScopes().get(scope));
}
}
authMethods.put(securityName, oauth2Operation);
} else {
authMethods.put(securityName, securityDefinition);
}
}
}
if (!authMethods.isEmpty()) {
co.authMethods = config.fromSecurity(authMethods);
co.hasAuthMethods = true;
}
}
if (!authMethods.isEmpty()) {
co.authMethods = config.fromSecurity(authMethods);
catch (Exception ex) {
String msg = "Could not process operation:\n" //
+ " Tag: " + tag + "\n"//
+ " Operation: " + operation.getOperationId() + "\n" //
+ " Resource: " + httpMethod + " " + resourcePath + "\n"//
+ " Definitions: " + swagger.getDefinitions() + "\n" //
+ " Exception: " + ex.getMessage();
throw new RuntimeException(msg, ex);
}
}
}
}
private String generateParameterId(Parameter parameter) {
return parameter.getName() + ":" + parameter.getIn();
}
protected String sanitizeTag(String tag) {
// remove spaces and make strong case
String[] parts = tag.split(" ");
@@ -392,6 +629,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
Map<String, Object> operations = new HashMap<String, Object>();
Map<String, Object> objs = new HashMap<String, Object>();
objs.put("classname", config.toApiName(tag));
objs.put("pathPrefix", config.toApiVarName(tag));
// check for operationId uniqueness
Set<String> opIds = new HashSet<String>();
@@ -429,6 +667,12 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
}
operations.put("imports", imports);
// add a flag to indicate whether there's any {{import}}
if (imports.size() > 0) {
operations.put("hasImport", true);
}
config.postProcessOperations(operations);
if (objs.size() > 0) {
List<CodegenOperation> os = (List<CodegenOperation>) objs.get("operation");
@@ -441,41 +685,47 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
return operations;
}
public Map<String, Object> processModels(CodegenConfig config, Map<String, Model> definitions) {
public Map<String, Object> processModels(CodegenConfig config, Map<String, Model> definitions, Map<String, Model> allDefinitions) {
Map<String, Object> objs = new HashMap<String, Object>();
objs.put("package", config.modelPackage());
List<Object> models = new ArrayList<Object>();
Set<String> allImports = new LinkedHashSet<String>();
for (String key : definitions.keySet()) {
Model mm = definitions.get(key);
CodegenModel cm = config.fromModel(key, mm);
CodegenModel cm = config.fromModel(key, mm, allDefinitions);
Map<String, Object> mo = new HashMap<String, Object>();
mo.put("model", cm);
mo.put("importPath", config.toModelImport(key));
models.add(mo);
allImports.addAll(cm.imports);
}
objs.put("models", models);
List<Map<String, String>> imports = new ArrayList<Map<String, String>>();
Set<String> importSet = new TreeSet<String>();
for (String nextImport : allImports) {
Map<String, String> im = new LinkedHashMap<String, String>();
Map<String, String> im = new HashMap<String, String>();
String mapping = config.importMapping().get(nextImport);
if (mapping == null) {
mapping = config.toModelImport(nextImport);
}
if (mapping != null && !config.defaultIncludes().contains(mapping)) {
im.put("import", mapping);
imports.add(im);
importSet.add(mapping);
}
// add instantiation types
mapping = config.instantiationTypes().get(nextImport);
if (mapping != null && !config.defaultIncludes().contains(mapping)) {
im.put("import", mapping);
imports.add(im);
importSet.add(mapping);
}
}
List<Map<String, String>> imports = new ArrayList<Map<String, String>>();
for(String s: importSet) {
Map<String, String> item = new HashMap<String, String>();
item.put("import", s);
imports.add(item);
}
objs.put("imports", imports);
config.postProcessModels(objs);

View File

@@ -0,0 +1,389 @@
package io.swagger.codegen;
import com.sun.org.apache.xpath.internal.operations.Mod;
import io.swagger.models.*;
import io.swagger.models.parameters.BodyParameter;
import io.swagger.models.parameters.Parameter;
import io.swagger.models.parameters.RefParameter;
import io.swagger.models.properties.*;
import io.swagger.util.Json;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class InlineModelResolver {
private Swagger swagger;
private boolean skipMatches;
static Logger LOGGER = LoggerFactory.getLogger(InlineModelResolver.class);
Map<String, Model> addedModels = new HashMap<String, Model>();
Map<String, String> generatedSignature = new HashMap<String, String>();
public void flatten(Swagger swagger) {
this.swagger = swagger;
if (swagger.getDefinitions() == null) {
swagger.setDefinitions(new HashMap<String, Model>());
}
// operations
Map<String, Path> paths = swagger.getPaths();
Map<String, Model> models = swagger.getDefinitions();
if (paths != null) {
for (String pathname : paths.keySet()) {
Path path = paths.get(pathname);
for (Operation operation : path.getOperations()) {
List<Parameter> parameters = operation.getParameters();
if (parameters != null) {
for (Parameter parameter : parameters) {
if (parameter instanceof BodyParameter) {
BodyParameter bp = (BodyParameter) parameter;
if (bp.getSchema() != null) {
Model model = bp.getSchema();
if(model instanceof ModelImpl) {
ModelImpl obj = (ModelImpl) model;
if (obj.getType() == null || "object".equals(obj.getType())) {
String modelName = uniqueName(bp.getName());
flattenProperties(obj.getProperties(), pathname);
bp.setSchema(new RefModel(modelName));
addGenerated(modelName, model);
swagger.addDefinition(modelName, model);
}
}
else if (model instanceof ArrayModel) {
ArrayModel am = (ArrayModel) model;
Property inner = am.getItems();
if(inner instanceof ObjectProperty) {
String modelName = uniqueName(bp.getName());
ObjectProperty op = (ObjectProperty) inner;
flattenProperties(op.getProperties(), pathname);
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
am.setItems(new RefProperty(existing));
} else {
am.setItems(new RefProperty(modelName));
addGenerated(modelName, innerModel);
swagger.addDefinition(modelName, innerModel);
}
}
}
}
}
}
}
Map<String, Response> responses = operation.getResponses();
if (responses != null) {
for (String key : responses.keySet()) {
Response response = responses.get(key);
if (response.getSchema() != null) {
Property property = response.getSchema();
if (property instanceof ObjectProperty) {
String modelName = uniqueName("inline_response_" + key);
ObjectProperty op = (ObjectProperty) property;
Model model = modelFromProperty(op, modelName);
String existing = matchGenerated(model);
if (existing != null) {
response.setSchema(new RefProperty(existing));
} else {
response.setSchema(new RefProperty(modelName));
addGenerated(modelName, model);
swagger.addDefinition(modelName, model);
}
} else if (property instanceof ArrayProperty) {
ArrayProperty ap = (ArrayProperty) property;
Property inner = ap.getItems();
if(inner instanceof ObjectProperty) {
String modelName = uniqueName("inline_response_" + key);
ObjectProperty op = (ObjectProperty) inner;
flattenProperties(op.getProperties(), pathname);
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
ap.setItems(new RefProperty(existing));
} else {
ap.setItems(new RefProperty(modelName));
addGenerated(modelName, innerModel);
swagger.addDefinition(modelName, innerModel);
}
}
} else if (property instanceof MapProperty) {
MapProperty mp = (MapProperty) property;
Property innerProperty = mp.getAdditionalProperties();
if(innerProperty instanceof ObjectProperty) {
String modelName = uniqueName("inline_response_" + key);
ObjectProperty op = (ObjectProperty) innerProperty;
flattenProperties(op.getProperties(), pathname);
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
mp.setAdditionalProperties(new RefProperty(existing));
} else {
mp.setAdditionalProperties(new RefProperty(modelName));
addGenerated(modelName, innerModel);
swagger.addDefinition(modelName, innerModel);
}
}
}
}
}
}
}
}
}
// definitions
if (models != null) {
List<String> modelNames = new ArrayList<String>(models.keySet());
for (String modelName : modelNames) {
Model model = models.get(modelName);
if (model instanceof ModelImpl) {
ModelImpl m = (ModelImpl) model;
Map<String, Property> properties = m.getProperties();
flattenProperties(properties, modelName);
} else if (model instanceof ArrayModel) {
ArrayModel m = (ArrayModel) model;
Property inner = m.getItems();
if (inner instanceof ObjectProperty) {
String innerModelName = uniqueName(modelName + "_inner");
Model innerModel = modelFromProperty((ObjectProperty) inner, modelName);
String existing = matchGenerated(innerModel);
if (existing == null) {
swagger.addDefinition(innerModelName, innerModel);
addGenerated(innerModelName, innerModel);
m.setItems(new RefProperty(innerModelName));
} else {
m.setItems(new RefProperty(existing));
}
}
} else if (model instanceof ComposedModel) {
ComposedModel m = (ComposedModel) model;
}
}
}
}
public String matchGenerated(Model model) {
if (this.skipMatches) {
return null;
}
String json = Json.pretty(model);
if (generatedSignature.containsKey(json)) {
return generatedSignature.get(json);
}
return null;
}
public void addGenerated(String name, Model model) {
generatedSignature.put(Json.pretty(model), name);
}
public String uniqueName(String key) {
int count = 0;
boolean done = false;
key = key.replaceAll("[^a-z_\\.A-Z0-9 ]", "");
while (!done) {
String name = key;
if (count > 0) {
name = key + "_" + count;
}
if (swagger.getDefinitions() == null) {
return name;
} else if (!swagger.getDefinitions().containsKey(name)) {
return name;
}
count += 1;
}
return key;
}
public void flattenProperties(Map<String, Property> properties, String path) {
if (properties == null) {
return;
}
Map<String, Property> propsToUpdate = new HashMap<String, Property>();
Map<String, Model> modelsToAdd = new HashMap<String, Model>();
for (String key : properties.keySet()) {
Property property = properties.get(key);
if (property instanceof ObjectProperty && ((ObjectProperty)property).getProperties().size() > 0) {
String modelName = uniqueName(path + "_" + key);
ObjectProperty op = (ObjectProperty) property;
Model model = modelFromProperty(op, modelName);
String existing = matchGenerated(model);
if (existing != null) {
propsToUpdate.put(key, new RefProperty(existing));
} else {
propsToUpdate.put(key, new RefProperty(modelName));
modelsToAdd.put(modelName, model);
addGenerated(modelName, model);
swagger.addDefinition(modelName, model);
}
} else if (property instanceof ArrayProperty) {
ArrayProperty ap = (ArrayProperty) property;
Property inner = ap.getItems();
if (inner instanceof ObjectProperty) {
String modelName = uniqueName(path + "_" + key);
ObjectProperty op = (ObjectProperty) inner;
flattenProperties(op.getProperties(), path);
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
ap.setItems(new RefProperty(existing));
} else {
ap.setItems(new RefProperty(modelName));
addGenerated(modelName, innerModel);
swagger.addDefinition(modelName, innerModel);
}
}
} else if (property instanceof MapProperty) {
MapProperty mp = (MapProperty) property;
Property inner = mp.getAdditionalProperties();
if (inner instanceof ObjectProperty) {
String modelName = uniqueName(path + "_" + key);
ObjectProperty op = (ObjectProperty) inner;
flattenProperties(op.getProperties(), path);
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
mp.setAdditionalProperties(new RefProperty(existing));
} else {
mp.setAdditionalProperties(new RefProperty(modelName));
addGenerated(modelName, innerModel);
swagger.addDefinition(modelName, innerModel);
}
}
} else {
}
}
if (propsToUpdate.size() > 0) {
for (String key : propsToUpdate.keySet()) {
properties.put(key, propsToUpdate.get(key));
}
}
for (String key : modelsToAdd.keySet()) {
swagger.addDefinition(key, modelsToAdd.get(key));
this.addedModels.put(key, modelsToAdd.get(key));
}
}
public Model modelFromProperty(ArrayProperty object, String path) {
String access = object.getAccess();
String description = object.getDescription();
String example = object.getExample();
String name = object.getName();
Integer position = object.getPosition();
Boolean readOnly = object.getReadOnly();
Boolean required = object.getRequired();
String title = object.getTitle();
Map<String, Object> extensions = object.getVendorExtensions();
Xml xml = object.getXml();
// object.getItems()
// Map<String, Property> properties = object.getProperties();
Property inner = object.getItems();
if (inner instanceof ObjectProperty) {
ArrayModel model = new ArrayModel();
model.setDescription(description);
model.setExample(example);
// model.setName(name);
// model.setXml(xml);
model.setItems(object.getItems());
return model;
}
// if(properties != null) {
// flattenProperties(properties, path);
// model.setProperties(properties);
// }
return null;
}
public Model modelFromProperty(ObjectProperty object, String path) {
String access = object.getAccess();
String description = object.getDescription();
String example = object.getExample();
String name = object.getName();
Integer position = object.getPosition();
Boolean readOnly = object.getReadOnly();
Boolean required = object.getRequired();
String title = object.getTitle();
Map<String, Object> extensions = object.getVendorExtensions();
Xml xml = object.getXml();
Map<String, Property> properties = object.getProperties();
ModelImpl model = new ModelImpl();
model.setDescription(description);
model.setExample(example);
model.setName(name);
model.setXml(xml);
if (properties != null) {
flattenProperties(properties, path);
model.setProperties(properties);
}
return model;
}
public Model modelFromProperty(MapProperty object, String path) {
String access = object.getAccess();
String description = object.getDescription();
String example = object.getExample();
String name = object.getName();
Integer position = object.getPosition();
Boolean readOnly = object.getReadOnly();
Boolean required = object.getRequired();
String title = object.getTitle();
Map<String, Object> extensions = object.getVendorExtensions();
Xml xml = object.getXml();
ArrayModel model = new ArrayModel();
model.setDescription(description);
model.setExample(example);
model.setItems(object.getAdditionalProperties());
return model;
}
public boolean isSkipMatches() {
return skipMatches;
}
public void setSkipMatches(boolean skipMatches) {
this.skipMatches = skipMatches;
}
}

View File

@@ -157,6 +157,7 @@ public class MetaGenerator extends AbstractGenerator {
String template = readTemplate(templateDir + File.separator + support.templateFile);
Template tmpl = Mustache.compiler()
.withLoader(new Mustache.TemplateLoader() {
@Override
public Reader getTemplate(String name) {
return getTemplateReader(templateDir + File.separator + name + ".mustache");
}

View File

@@ -10,4 +10,14 @@ public class SupportingFile {
this.folder = folder;
this.destinationFilename = destinationFilename;
}
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("SupportingFile:").append("\n");
builder.append("\ttemplateFile: ").append(templateFile).append("\n");
builder.append("\tfolder: ").append(folder).append("\n");
builder.append("\tdestinationFilename: ").append(destinationFilename).append("\n");
return builder.toString();
}
}

View File

@@ -0,0 +1,50 @@
package io.swagger.codegen.auth;
import io.swagger.models.auth.AuthorizationValue;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
public class AuthParser {
public static List<AuthorizationValue> parse(String urlEncodedAuthStr) {
List<AuthorizationValue> auths = new ArrayList<AuthorizationValue>();
if (isNotEmpty(urlEncodedAuthStr)) {
String[] parts = urlEncodedAuthStr.split(",");
for (String part : parts) {
String[] kvPair = part.split(":");
if (kvPair.length == 2) {
auths.add(new AuthorizationValue(URLDecoder.decode(kvPair[0]), URLDecoder.decode(kvPair[1]), "header"));
}
}
}
return auths;
}
public static String reconstruct(List<AuthorizationValue> authorizationValueList) {
if (authorizationValueList != null) {
StringBuilder b = new StringBuilder();
for (AuthorizationValue v : authorizationValueList) {
try {
if (b.toString().length() > 0) {
b.append(",");
}
b.append(URLEncoder.encode(v.getKeyName(), "UTF-8"))
.append(":")
.append(URLEncoder.encode(v.getValue(), "UTF-8"));
} catch (Exception e) {
// continue
e.printStackTrace();
}
}
return b.toString();
} else {
return null;
}
}
}

View File

@@ -0,0 +1,401 @@
package io.swagger.codegen.config;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import io.swagger.codegen.CliOption;
import io.swagger.codegen.ClientOptInput;
import io.swagger.codegen.ClientOpts;
import io.swagger.codegen.CodegenConfig;
import io.swagger.codegen.CodegenConfigLoader;
import io.swagger.codegen.CodegenConstants;
import io.swagger.codegen.auth.AuthParser;
import io.swagger.models.Swagger;
import io.swagger.models.auth.AuthorizationValue;
import io.swagger.parser.SwaggerParser;
import io.swagger.util.Json;
import org.apache.commons.lang3.Validate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
/**
* A class that contains all codegen configuration properties a user would want to manipulate.
* An instance could be created by deserializing a JSON file or being populated from CLI or Maven plugin parameters.
* It also has a convenience method for creating a ClientOptInput class which is THE object DefaultGenerator.java needs
* to generate code.
*/
public class CodegenConfigurator {
public static final Logger LOG = LoggerFactory.getLogger(CodegenConfigurator.class);
private String lang;
private String inputSpec;
private String outputDir;
private boolean verbose;
private boolean skipOverwrite;
private String templateDir;
private String auth;
private String apiPackage;
private String modelPackage;
private String invokerPackage;
private String groupId;
private String artifactId;
private String artifactVersion;
private String library;
private Map<String, String> systemProperties = new HashMap<String, String>();
private Map<String, String> instantiationTypes = new HashMap<String, String>();
private Map<String, String> typeMappings = new HashMap<String, String>();
private Map<String, String> additionalProperties = new HashMap<String, String>();
private Map<String, String> importMappings = new HashMap<String, String>();
private Set<String> languageSpecificPrimitives = new HashSet<String>();
private final Map<String, String> dynamicProperties = new HashMap<String, String>(); //the map that holds the JsonAnySetter/JsonAnyGetter values
public CodegenConfigurator() {
this.setOutputDir(".");
}
public CodegenConfigurator setLang(String lang) {
this.lang = lang;
return this;
}
public CodegenConfigurator setInputSpec(String inputSpec) {
this.inputSpec = inputSpec;
return this;
}
public String getInputSpec() {
return inputSpec;
}
public String getOutputDir() {
return outputDir;
}
public CodegenConfigurator setOutputDir(String outputDir) {
this.outputDir = toAbsolutePathStr(outputDir);
return this;
}
public String getModelPackage() {
return modelPackage;
}
public CodegenConfigurator setModelPackage(String modelPackage) {
this.modelPackage = modelPackage;
return this;
}
public boolean isVerbose() {
return verbose;
}
public CodegenConfigurator setVerbose(boolean verbose) {
this.verbose = verbose;
return this;
}
public boolean isSkipOverwrite() {
return skipOverwrite;
}
public CodegenConfigurator setSkipOverwrite(boolean skipOverwrite) {
this.skipOverwrite = skipOverwrite;
return this;
}
public String getLang() {
return lang;
}
public String getTemplateDir() {
return templateDir;
}
public CodegenConfigurator setTemplateDir(String templateDir) {
this.templateDir = new File(templateDir).getAbsolutePath();
return this;
}
public String getAuth() {
return auth;
}
public CodegenConfigurator setAuth(String auth) {
this.auth = auth;
return this;
}
public String getApiPackage() {
return apiPackage;
}
public CodegenConfigurator setApiPackage(String apiPackage) {
this.apiPackage = apiPackage;
return this;
}
public String getInvokerPackage() {
return invokerPackage;
}
public CodegenConfigurator setInvokerPackage(String invokerPackage) {
this.invokerPackage = invokerPackage;
return this;
}
public String getGroupId() {
return groupId;
}
public CodegenConfigurator setGroupId(String groupId) {
this.groupId = groupId;
return this;
}
public String getArtifactId() {
return artifactId;
}
public CodegenConfigurator setArtifactId(String artifactId) {
this.artifactId = artifactId;
return this;
}
public String getArtifactVersion() {
return artifactVersion;
}
public CodegenConfigurator setArtifactVersion(String artifactVersion) {
this.artifactVersion = artifactVersion;
return this;
}
public Map<String, String> getSystemProperties() {
return systemProperties;
}
public CodegenConfigurator setSystemProperties(Map<String, String> systemProperties) {
this.systemProperties = systemProperties;
return this;
}
public CodegenConfigurator addSystemProperty(String key, String value) {
this.systemProperties.put(key, value);
return this;
}
public Map<String, String> getInstantiationTypes() {
return instantiationTypes;
}
public CodegenConfigurator setInstantiationTypes(Map<String, String> instantiationTypes) {
this.instantiationTypes = instantiationTypes;
return this;
}
public CodegenConfigurator addInstantiationType(String key, String value) {
this.instantiationTypes.put(key, value);
return this;
}
public Map<String, String> getTypeMappings() {
return typeMappings;
}
public CodegenConfigurator setTypeMappings(Map<String, String> typeMappings) {
this.typeMappings = typeMappings;
return this;
}
public CodegenConfigurator addTypeMapping(String key, String value) {
this.typeMappings.put(key, value);
return this;
}
public Map<String, String> getAdditionalProperties() {
return additionalProperties;
}
public CodegenConfigurator setAdditionalProperties(Map<String, String> additionalProperties) {
this.additionalProperties = additionalProperties;
return this;
}
public CodegenConfigurator addAdditionalProperty(String key, String value) {
this.additionalProperties.put(key, value);
return this;
}
public Map<String, String> getImportMappings() {
return importMappings;
}
public CodegenConfigurator setImportMappings(Map<String, String> importMappings) {
this.importMappings = importMappings;
return this;
}
public CodegenConfigurator addImportMapping(String key, String value) {
this.importMappings.put(key, value);
return this;
}
public Set<String> getLanguageSpecificPrimitives() {
return languageSpecificPrimitives;
}
public CodegenConfigurator setLanguageSpecificPrimitives(Set<String> languageSpecificPrimitives) {
this.languageSpecificPrimitives = languageSpecificPrimitives;
return this;
}
public CodegenConfigurator addLanguageSpecificPrimitive(String value) {
this.languageSpecificPrimitives.add(value);
return this;
}
public String getLibrary() {
return library;
}
public CodegenConfigurator setLibrary(String library) {
this.library = library;
return this;
}
public ClientOptInput toClientOptInput() {
Validate.notEmpty(lang, "language must be specified");
Validate.notEmpty(inputSpec, "input spec must be specified");
setVerboseFlags();
setSystemProperties();
CodegenConfig config = CodegenConfigLoader.forName(lang);
config.setOutputDir(outputDir);
config.setSkipOverwrite(skipOverwrite);
config.instantiationTypes().putAll(instantiationTypes);
config.typeMapping().putAll(typeMappings);
config.importMapping().putAll(importMappings);
config.languageSpecificPrimitives().addAll(languageSpecificPrimitives);
checkAndSetAdditionalProperty(apiPackage, CodegenConstants.API_PACKAGE);
checkAndSetAdditionalProperty(modelPackage, CodegenConstants.MODEL_PACKAGE);
checkAndSetAdditionalProperty(invokerPackage, CodegenConstants.INVOKER_PACKAGE);
checkAndSetAdditionalProperty(groupId, CodegenConstants.GROUP_ID);
checkAndSetAdditionalProperty(artifactId, CodegenConstants.ARTIFACT_ID);
checkAndSetAdditionalProperty(artifactVersion, CodegenConstants.ARTIFACT_VERSION);
checkAndSetAdditionalProperty(templateDir, toAbsolutePathStr(templateDir), CodegenConstants.TEMPLATE_DIR);
handleDynamicProperties(config);
if (isNotEmpty(library)) {
config.setLibrary(library);
}
config.additionalProperties().putAll(additionalProperties);
ClientOptInput input = new ClientOptInput()
.config(config);
final List<AuthorizationValue> authorizationValues = AuthParser.parse(auth);
Swagger swagger = new SwaggerParser().read(inputSpec, authorizationValues, true);
input.opts(new ClientOpts())
.swagger(swagger);
return input;
}
@JsonAnySetter
public CodegenConfigurator addDynamicProperty(String name, Object value) {
dynamicProperties.put(name, value.toString());
return this;
}
@JsonAnyGetter
public Map<String, String> getDynamicProperties() {
return dynamicProperties;
}
private void handleDynamicProperties(CodegenConfig codegenConfig) {
for (CliOption langCliOption : codegenConfig.cliOptions()) {
String opt = langCliOption.getOpt();
if (dynamicProperties.containsKey(opt)) {
codegenConfig.additionalProperties().put(opt, dynamicProperties.get(opt));
}
else if(systemProperties.containsKey(opt)) {
codegenConfig.additionalProperties().put(opt, systemProperties.get(opt).toString());
}
}
}
private void setVerboseFlags() {
if (!verbose) {
return;
}
LOG.info("\nVERBOSE MODE: ON. Additional debug options are injected" +
"\n - [debugSwagger] prints the swagger specification as interpreted by the codegen" +
"\n - [debugModels] prints models passed to the template engine" +
"\n - [debugOperations] prints operations passed to the template engine" +
"\n - [debugSupportingFiles] prints additional data passed to the template engine");
System.setProperty("debugSwagger", "");
System.setProperty("debugModels", "");
System.setProperty("debugOperations", "");
System.setProperty("debugSupportingFiles", "");
}
private void setSystemProperties() {
for (Map.Entry<String, String> entry : systemProperties.entrySet()) {
System.setProperty(entry.getKey(), entry.getValue());
}
}
private static String toAbsolutePathStr(String path) {
if (isNotEmpty(path)) {
return Paths.get(path).toAbsolutePath().toString();
}
return path;
}
private void checkAndSetAdditionalProperty(String property, String propertyKey) {
checkAndSetAdditionalProperty(property, property, propertyKey);
}
private void checkAndSetAdditionalProperty(String property, String valueToSet, String propertyKey) {
if (isNotEmpty(property)) {
additionalProperties.put(propertyKey, valueToSet);
}
}
public static CodegenConfigurator fromFile(String configFile) {
if (isNotEmpty(configFile)) {
try {
return Json.mapper().readValue(new File(configFile), CodegenConfigurator.class);
} catch (IOException e) {
LOG.error("Unable to deserialize config file: " + configFile, e);
}
}
return null;
}
}

Some files were not shown because too many files have changed in this diff Show More