Releases: swagger-api/swagger-codegen
Swagger Codegen 3.0.0-rc0 has been released!
This is our first official release of swagger-codegen with OpenAPI 3 support!
Being a first release (and during the RC (release candidate) releases), we highly depend on the community to provide us with feedback. There are some major changes in this release, so help us test it out. For any issues or concerns, please file a ticket so we can start a discussion. Also, first releases being RC releases - you should expect there to be breaking changes, based on feedback and further development.
Read the FAQ at the end of the release notes for more information about the changes in this version and how you can help!
This release has been implemented for java
and inflector
languages as a start of OpenAPI 3.0 support.
General enhancements based on issues #6041 and #6077
- OpenAPI 3.0 support.
- Switched to Handlebars template engine.
- Removed all
is
,isNot
,has
andhasNot
properties from codegen pojos and use extensions instead. - Added helpers to replace the removed properties. i.e
{{is this 'enum'}}
,{{has this 'more'}}
{{isNot this 'form-param'}}
, etc. - Remote arguments loading for
swagger codegen-cli
andswagger generator
modules. - Requires Java 8 for operation.
- The templates will now be managed in a separate repository swagger-codegen-generators and will be released independently of the engine itself.
- swagger-generator works with 'inflector 2.0', check open api spec to know endpoint details.
Known Limitations
java
andinflector
are the only supported languages.- No supported languages templates are no longer available in this repo. They are going to be eventually moved to swagger-codegen-generators.
- It's likely that many parts of the documentation are not up to date yet.
FAQ
-
Q: What does support for OAS3 mean?
-
A: API definitions of previous versions of the spec will be automatically converted to OAS3, and only then the code will be generated. Since our conversion is also in RC mode right now, we expect there to be broken conversions, and with your tickets we can have those issues resolved.
-
Q: Switched to Handlebars?! Why?
-
A: Handlebars is mostly compatible with Mustache, meaning migration is not always required, or if so, changes should be minimal. On the other hand, Handlebars offers more flexibility in the templates, which would end up simplifying the templates and the generators.
-
Q: Why have the generators (templates) been separated to a new repository?
-
A: The codegen engine and the generators advance in a significantly different pace. In order to allow for more frequent releases of either, the separation made sense. It's likely that in future RC releases, each generator would be versioned independently allowing for even further release flexibility. This does introduce some challenges, read ahead in the FAQ.
-
Q: What happened to all the existing generators? Why only 2 were migrated?
-
A: We needed an initial start with the new version, and some of the Java templates made sense to us as the codegen itself is written in Java. As you know, the majority of the generators are made by our awesome community of contributors! We'll need the community's help with migrating and testing further templates.
-
Q: What are the main current challenges?
-
A: There are two main challenges. The first - migrating the long list of templates that we have and test them. The second - separating the generators to a new repository has made the build process slightly more complicated. We have thoughts on how to improve it, and would love the community input on it as well.
-
Q: Are there any other major changes coming?
-
A: Maybe, and they may or may not come as part of the 3.0 release. We have some thoughts on improving version management for the generators and the engine to ensure compliance.
-
Q: How can we, as a community, help?
-
A: The codegen community is very active and vibrant, and we're very appreciative of the help we've gotten over the years. As you would expect, with a new major version, the help can come in with testing, migrating templates, filing issues, giving suggestions, and providing feedback to the changes. We'll do our best to listen and incorporate those into the project.
-
Q: swagger-codegen-generators's README is empty?
-
A: Yes, we know. It needs some love. We'll get there by RC1!
Swagger Codegen 2.3.1 has been released!
Thanks for the feedback from the Swagger Codegen community on the v2.3.0 stable release.
We've addressed several important issues as follows:
- Fix to make Swagger Codegen compatible with JDK7 again #7260
- [Scala] Fix missing json4s import #7271
- [Typescript][Angular] fix regression/bug that parameters with an _ ignore naming convention #7313
- [Java] allow setting boolean getter (is, has, get) in templates #7344
- [Java][jersey2] Fix logging for jersey2 (Java6) #7348
- [Java][Vertx] use reflection to instantiate non-generated class #7360
For other minor fixes and enhancements, please refer to the full list here.
We've also included a new Ada server generator in this release:
- [Ada] Add Ada support for server code generator #7256
Swagger Codegen 2.3.0 has been released!
This release brings a record of 13 new generators in a single release with more than 600 PRs, which contain breaking changes (with fallback, without fallback).
Note! This release does not yet support OpenAPI 3.0, which will be included in the upcoming 3.0.0 release.
Many thanks again to the swagger-codegen team for their continued support of the project and the contributions from the awesome Swagger Codegen community with more than 800 contributors from all around the world.
General enhancements & bug fixes
New Generators:
API Clients
- Ada API client
- Elm API client
- Erlang API client
- Haskell API client
- Java (vertx) API client
- Lua API client
- R API client
- Rust API client (#6105, #6613)
- Scala (scalaz) API client
- TypeScript (Aurelia) API client
API servers
API Clients (enhancements, bug fixes)
- Ada (2 PRs)
- Android (3 PRs)
- Bash (7 PRs)
- C# (17 PRs)
- C++ (18 PRs)
- Dart (1 PR)
- Eiffel (3 PRs)
- Elixir (5 PRs)
- Erlang (2 PRs)
- Go (11 PRs)
- Haskell (15 PRs)
- Java (56 PRs)
- JavaScript (10 PRs)
- Kotlin (9 PRs)
- Lua (2 PRs)
- Objective-C (11 PRs)
- Perl (1 PR)
- PHP (20 PRs)
- Python (21 PRs)
- R (6 PRs)
- Ruby (5 PRs)
- Rust (8 PRs)
- Scala (14 PRs)
- Swift (39 PRs)
- TypeScript (67 PRs)
API Servers (enhancements, bug fixes)
- C++ (3 PRs)
- C# (17 PRs)
- Erlang (2 PRs)
- Go (5 PRs)
- Haskell (2 PRs)
- Java (66 PRs)
- NodeJS (2 PRs)
- PHP (8 PRs)
- Python (8 PRs)
- Ruby (1 PR)
- Rust (7 PRs)
- Scala (6 PRs)
Documentation (enhancements, bug fixes)
Swagger Codegen 2.2.3 has been released!
This release brings a record of 11 new generators in a single release with more than 450 PRs. Note! We will stop support on the 2.2.x branch of swagger-codegen and focus on 2.3.x and soon 3.x. Please consider migrating to 2.3 now!
Many thanks again to the swagger-codegen team for their continued support of the project and the contributions from the awesome Swagger Codegen community with 643 contributors from all around the world.
General enhancements & bug fixes
- General enhancements (13 PRs)
- General bug fixes (4 PRs)
- Swagger generator (2 PRs)
- Maven plug-in (7 PRs)
New Generators:
API Clients
API servers
Configuration
API Clients (enhancements, bug fixes)
- Android (7 PRs)
- Apex (4 PRs)
- C# (29 PRs)
- C++ (21 PRs)
- Dart (4 PRs)
- Eiffel (1 PR)
- Go (3 PRs)
- Java (58 PRs)
- JMeter (1 PR)
- JavaScript (25 PRs)
- Kotlin (5 PRs)
- Objective-C (4 PRs)
- Perl (3 PRs)
- PHP (12 PRs)
- PowerShell (3 PRs)
- Python (13 PRs)
- Ruby (8 PRs)
- Scala (11 PRs)
- Swift (22 PRs)
- TypeScript (29 PRs)
API Servers (enhancements, bug fixes)
- C++ (9 PRs)
- C# (6 PRs)
- Erlang (2 PRs)
- Java (42 PRs)
- NodeJS (3 PRs)
- PHP (5 PRs)
- Python (8 PRs)
- Ruby (4 PRs)
- Scala (1 PR)
Documentation (enhancements, bug fixes)
Swagger Codegen 2.2.2 has been released!
This release brings 4 new API client generators and 5 new server stub generators. More than 500 enhancements and bug fixes have been successfully merged.
Many thanks to the swagger-codegen team for their continued support of the project and the contributions from the awesome Swagger Codegen community. A special thanks to @wing328 for helping drive the project (and for drafting these release notes...)
General enhancements & bug fixes
New Generators:
API Clients
API servers
- Erlang server
- Java MSF4J server
- JAX-RS CDI server
- JAX-RS RestEasy server (Jboss EAP)
- PHP Zend Expressive server
API Clients (enhancements, bug fixes)
- Android (9 PRs)
- C# (23 PRs)
- C++ (13 PRs)
- Dart (8 PRs)
- Go (15 PRs)
- Java (47 PRs)
- JMeter (2 PRs)
- JavaScript (13 PRs)
- Objective-C (11 PRs)
- Perl (3 PRs)
- PHP (23 PRs)
- Python (31 PRs)
- Ruby (14 PRs)
- Scala (11 PRs)
- Swift (23 PRs)
- TypeScript (37 PRs)
API Servers (enhancements, bug fixes)
- C# (11 PRs)
- Erlang (2 PRs)
- Haskell (1 PR)
- Java (55 PRs)
- NodeJS (6 PRs)
- PHP (3 PRs)
- Python (7 PRs)
- Ruby (4 PRs)
- Scala (7 PRs)
Documentation (enhancements, bug fixes)
Swagger-codegen 2.2.0 Released!
Swagger Codegen 2.2.0 has been released! This release provides major new functionality across multiple generation targets and addresses a number of potential issues.
There are changes in a number of the generation targets which may change the default behavior. Please review links associated with targets for details.
For a list of breaking changes (without fallbacks), please refer to this list.
For a list of breaking changes (with fallbacks), please refer to this list.
Once again, many thanks to the swagger-codegen team for their continued support of the project.
General enhancements & bug fixes
- Update JMustache to the latest version (v1.12): #2360
- Better support example value for string and number: #2689
- Improvement to codegen model #2691, #2712
- Fix naming of the
BEARER
token: #2783 - Fix unicode issue when reading OpenAPI spec: #2785
- Add individual options to exclude tests and docs for apis and models: #2866
- Use title attribute as inline model name: #2872
- Add
.swagger-codegen-ignore
to skip overwriting files: #2899 - Add Apache 2.0 license to all generators: #2993
- Minor improvements to code generator: #2921, #3005, #3289
- Improvements to API documentation: #2928, #2929
- Additional integration tests using Shippable and AppVeyor: #3275, #3333
Security fixes
- Fixes to prevent code injection: #3201, #3224, #3229, #3230, #3231, #3237, #3245, #3246, #3249, #3278, #3344, #3360
API client generators
- Android - enhancements: better gradle support (#2453, #2875, #2922), bug fixes (#2513, #3131)
- C# - enhancements: UWP support, enum, API doc (#2427, #2508, #2632), bug fixes (#2802, #3187)
- C++ (Qt5) - NEW cpprest generator: #3128, bug fixes (#2707, #3109)
- Clojure - Minor fix to media type (#2930)
- Dart - enhancements (#2478, #3179, #3325), bug fixes (#2436, #2614)
- Flash - Minor fix to required parameters (#2614)
- Go - enhancements (#2528, #2544, #2546, #2567, #2593, #2609, #2692, #2749, #2750), bug fixes (#2591, #2718, #2775)
- Groovy - NEW generator (#2693)
- Java - enhancements (#2435, #3030, #3045, #3065, #3075, #3094, #3099, #3101, #3103, #3108, #3174, #3176, #3312) and bug fixes (#2804, #2863, #2984, #3090)
- JavaScript - enhancements (#2445, #2734, #3134, #3254) and bug fixes (#2930, #3156)
- ObjC - enhancements (#2699, #2786, #2798, #2827, #2878, #3056, #3124) and bug fixes (#2908, #3031)
- Perl - Minor coding style fix #2570
- PHP - enhancements (#2508, #2733, #2778, #2854, #2869, #3163, #3256) and bug fixes (#2753, #3126)
- Python - enhancements (#2418, #2650, #2727, #2794, #3034, #3046, #3146) and bug fixes (#3066, #3061)
- Ruby - enhancements (#2647, #2695, #2697, #2912, #3283) and bug fixes (#2708, #3351)
- Scala - enhancements (#3058, #3149), bug fixes (#2551, #2573, #2614)
- Swift - enhancements (#2417, #2516, #2613, #2637, #2640, #2904) and bug fixes (#2705, #2840, #3038)
- TypeScript - NEW Fetch generator (#2763), enhancements (#2518, #2676, #2758, #2771, #2812, #3130, #3367) and bug fixes (#2574, #2864, #2917)
API server generators
- C# - NEW NancyFX generator #3178, ASP.NET enhancements (#2990, #3139, #3169, #3306)
- Go - NEW Go server generator #2979
- Haskell Servant generator - enhancements (#2322, #3027)
- Java JAXRS - enhancements (#2511, #3185, #3080, #3142), bug fixes (#3016, #3152)
- Java SpringMVC - enhancements (#2606, #2720, #3133)
- Java SpringBoot - NEW Spring Boot generator #2774, #2803, #3112, #3190, #3307
- NodeJS - enhancements (#2761, #3212), bug fixes (#2466, #2655)
- PHP Lumen - NEW Lumen generator (#2658, #3165)
- PHP Slim - minor bug fix #3251
- Python Flask - enhancement (#2560), bug fix (#2580)
- Ruby on Rails5 - NEW Rails5 generator (#2871, #3098)
- Scala Scalatra - minor bug fix #2556
Swagger-codegen 2.1.6 Released!
General enhancements & bug fixes
- Add git_push.sh and .gitignore to API clients for better Github integration #2366
- Enhancements to DefaultGenerator and CodegenProperty #1871, #2226, #2327
- Add suffix, prefix support for model name #2211, #2267, #2261, #2161, #2272, #2270, #2300, #2284
- Better integration with maven-codegen-plugin #1970
- Better Docker support with Vagrant #1943
- Automatically generate API documentation (markdown) #2320, #2344, #2388, #2391 #2400
- Scaffold test cases for API clients #2109, #2007, #1921, #1980
- Customisation of User-Agent #2371, #2376
- Better handling for model names #2310, #2398, #2393, #2348, #2328, #2324, #2309, #2257
- Better polymorphism support #1440, #2202, #1307
API client generators
- Android - enhancements #1920, #1839
- C# - enhancements and bug fixes #2397, #2317, #2199, #2026, #1964, #1941, #1863
- C++ (Qt5) - Fix file support in form parameter #2006
- Clojure - enhancements and bug fixes #2286, #2271
- Flash - Various bug fixes #2049
- Go - beta release and bug fixes #1747, #2289, #2295
- Java - enhancements and bug fixes #2206, #2149, #1999, #1998, #1928, #1899, #1866
- JavaScript - enhancements and bug fixes #2396, #2287, #2229, #2126, #2114, #2078, #2072, #2056, #1942
- ObjC - enhancements and bug fixes #2426, #2210, #2125
- Perl - enhancements and bug fixes #1897, #1812
- PHP - enhancements and bug fixes #2385, #2316, #1990, #1950, #1865
- Python - enhancements and bug fixes #2063, #2060, #2058
- Ruby - enhancements and bug fixes #2092, #2008, #2003, #1828, #1829
- Scala - enhancements #1830
- Swift - enhancements and bug fixes #2405, #2293, #2244, #2112, #2090, #2077
- TypeScript - enhancements and bug fixes #2076, #1979, #1965, #1886
API server generators
- Java server (Spring, JAX-RS) generator - enhancements and bug fixes #2421, 2346, #2256, #2249, #2021, #1960, #1882
- Haskell Servant generator - first release #2009
- ASP.NET 5 server generator - first release #2024
- Python Flask generator - #1958, #1957
For a list of breaking changes (without fallbacks), please refer to this list
For a list of breaking changes (with fallbacks), please refer to this list
Swagger-codegen 2.1.5 Released!
Another big update to swagger-codgen. 198 pull requests have been merged and over 150 issues closed. Codegen now has 36 different targets to build from your Swagger (now OAI) specifications.
We've also started pushing docker images of the swagger-online generator directly to DockerHub. You can pull these images and generate code directly inside your Docker infrastructure in seconds, without building anything.
The swagger-codegen-cli has updated options, all which are available inside the swagger-generator server.
General enhancements & bug fixes
- A bug with inline response models has been addressed (#1618, #1734)
- A static javascript client has been added (#1671, #1690)
- Better support for variable + parameter name collisions (#1821, #1824)
- Binary and Byte types are now exposed to the template system (#1757)
- Dependency updates (#1776)
- Duplicate
operationId
prevention (#1823) - General code hygiene (#1794)
- Options sanitization, datatype declaration for configuration purposes (#1786, #1805)
- Profiling added to scripts (#1709, #1708, #1702)
- Publish docker image on build (#1813)
- Vendor extension support (#1768)
Language-specific updates
- Android now has a
volley
client (#1775, #1816) - Clojure fixes (#1693, #1659, #1664, #1649)
- C-Sharp fixes (#1716, #1718, #1720, #1797)
- Date library selection for java targets (#1784)
- External enum models for java (#1740)
- JAXRS server generation enhancements (#1785, #1790, #1788, #1646)
- Java has better import logic (#1807, #1814, #1815)
- node.js server generation enhancements (#1826, #1791)
- Objective-C / Swift library updates (#1726, #1766, #1644, #1627)
- Python fixes (#1803, #1808)
- Perl fixes (#1771, #1780)
- QT5 fixes, test cases (#1682)
- Ruby fixes (#1772, #1761, #1714, #1712, #1709)
- Serialization for
BigDecimal
in java targets to keep precision (#1787)
Swagger-codegen 2.1.4 Released!
Tons of updates in the latest swagger-codegen release. In addition to having a number of
template and language-specific fixes & updates, there are some core changes to the codegen
which provide more complete spec support and enhanced debugging.
We’ve also added maven central badges (#1368) and greatly improved the README for the
project.
The swagger-codegen-cli executable jar has greatly improved documentation and the ability to use configuration files instead of a mountain of CLI options (#1306).
Here are some details of updates in this release. Overall there were 160 PRs merged!
General enhancements & bug fixes
- README updated with better instructions, TOC
- NPE fixed for empty OAuth scopes
- Better online generator support documentation
- Configuration set via file (#1306)
- Better exception handling (#1359, #1356, #1276)
- Migrated tests to be pure java (#1312, #1304)
- Authorization scope added to security models (#1390, #1392)
- Support for inline models through new swagger-parser features (#1410)
- Support for top-level consumes & produces (#1411, #1370)
- Better handling for missing/invalid operationId (#1431)
Language-specific updates
- Swift enhancements (#1436)
- Ruby enhancements (#1432, #1401, #1302, #1298, #1302)
- TypeScript enhancements (#1385, #1427, #1261)
- Perl enhancements (#1418, #1145)
- PHP enhancements (#1417, #1356)
- Java enhancements (#1416, #1375, #1280, #1264)
- Updated Objective-C to AF 3.0 (#1412)
- Objective-C updates (#1340)
- Static HTML enhancements (#1397, #1335)
- Swift enhancements (#1404)
- Python enhancements (#1300, #1295, #1290, #1290, #1281)
- C Sharp enhancements (#1393, #1333, #1331, #1307)
- Android enhancements (#1377)
- Added retrofit client library support (#1384, #1372, #1256)
- NodeJS server enhancements (#1360)
- Dynamic HTML enhancements (#1310)
Swagger-codegen 2.1.2 Released!
This is the first formal release of swagger-codegen with 2.0 spec support. Many thanks to the community for furthering the development of swagger and especially to @wing328 and @xhh (among others) for their generous contributions to the project.
Please note! We have repackaged the project from com.wordnik to io.swagger. The code API is the same!
Usage notes
Swagger-codegen has a fresh new command-line interface, and can be run, stand-alone or as a web-service from open-source tools.
Major changes
With the added support in swagger-parser, swagger-codegen now supports more complete swagger 2.0 specifications as well as YAML file formats.
Added support for c++ in the QT5 framework, as well as Perl, and Swift.
Notable features
- added C# generator #373, #399, #665
- Better support for 1.2 specs #606
- Improved PHP support #614, #622, #103, #635, #628
- Python support improvement #594, 595
- Improved Ruby template support #253
- Auto-generated method naming improvements #639, #274
- Java client support improvement #305, #690, #445
- Objc client support improvement #638, #633
- Switched to native JSON parsing for Android #687