wing328 393d25a0df Deploy website
Deploy website version based on 17ee990baaa80585242c7a07d64e2be4888fcfd0
2020-02-07 15:32:16 +00:00

259 lines
37 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Migrating from Swagger Codegen · OpenAPI Generator</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="OpenAPI Generator is a fork of `swagger-codegen` between version `2.3.1` and `2.4.0`. For the reasons behind the fork, please refer to the [Q&amp;A](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/qna.md)."/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Migrating from Swagger Codegen · OpenAPI Generator"/><meta property="og:type" content="website"/><meta property="og:url" content="https://openapi-generator.tech/"/><meta property="og:description" content="OpenAPI Generator is a fork of `swagger-codegen` between version `2.3.1` and `2.4.0`. For the reasons behind the fork, please refer to the [Q&amp;A](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/qna.md)."/><meta property="og:image" content="https://openapi-generator.tech/img/docusaurus.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://openapi-generator.tech/img/icons/twitter.svg"/><link rel="shortcut icon" href="/img/favicon.png"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><link rel="alternate" type="application/atom+xml" href="https://openapi-generator.tech/blog/atom.xml" title="OpenAPI Generator Blog ATOM Feed"/><link rel="alternate" type="application/rss+xml" href="https://openapi-generator.tech/blog/feed.xml" title="OpenAPI Generator Blog RSS Feed"/><script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-132927057-1', 'auto');
ga('send', 'pageview');
</script><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/code-block-buttons.js"></script><script src="https://unpkg.com/vanilla-back-to-top@7.1.14/dist/vanilla-back-to-top.min.js"></script><script>
document.addEventListener('DOMContentLoaded', function() {
addBackToTop(
{"zIndex":100}
)
});
</script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/mono-logo.svg" alt="OpenAPI Generator"/><h2 class="headerTitleWithLogo">OpenAPI Generator</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive"><a href="/docs/installation" target="_self">Get Started</a></li><li class="siteNavGroupActive"><a href="/docs/generators" target="_self">Generators</a></li><li class="siteNavGroupActive"><a href="/docs/roadmap" target="_self">Roadmap</a></li><li class=""><a href="/team" target="_self">Team</a></li><li class=""><a href="/docs/faq" target="_self">FAQ</a></li><li class=""><a href="/blog/" target="_self">Blog</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i></i><span>About</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">Getting Started<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/installation">CLI Installation</a></li><li class="navListItem"><a class="navItem" href="/docs/plugins">Plugins</a></li><li class="navListItem"><a class="navItem" href="/docs/online">Online</a></li><li class="navListItem"><a class="navItem" href="/docs/usage">Usage</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">Extending<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/templating">Using Templates</a></li><li class="navListItem"><a class="navItem" href="/docs/customization">Customization</a></li><li class="navListItem"><a class="navItem" href="/docs/debugging">Debugging</a></li><li class="navListItem"><a class="navItem" href="/docs/integrations">Workflow Integrations</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">Contributing<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/contributing">Guidelines</a></li><li class="navListItem"><a class="navItem" href="/docs/code-of-conduct">Code of Conduct</a></li><li class="navListItem"><a class="navItem" href="/docs/contribute-building">Building the code</a></li><li class="navListItem"><a class="navItem" href="/docs/new-generator">Create a New Generator</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">About<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/roadmap">Roadmap</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/docs/swagger-codegen-migration">Migrating from Swagger Codegen</a></li><li class="navListItem"><a class="navItem" href="/docs/fork-qna">Swagger Codegen Fork: Q&amp;A</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">Releases<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/release-summary">Release Summary</a></li><li class="navListItem"><a class="navItem" href="/docs/release-3-0-0">Release Notes: 3.0.0</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">API<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/generators">Generators List</a></li></ul></div></div></section></div><script>
var coll = document.getElementsByClassName('collapsible');
var checkActiveCategory = true;
for (var i = 0; i < coll.length; i++) {
var links = coll[i].nextElementSibling.getElementsByTagName('*');
if (checkActiveCategory){
for (var j = 0; j < links.length; j++) {
if (links[j].classList.contains('navListItemActive')){
coll[i].nextElementSibling.classList.toggle('hide');
coll[i].childNodes[1].classList.toggle('rotate');
checkActiveCategory = false;
break;
}
}
}
coll[i].addEventListener('click', function() {
var arrow = this.childNodes[1];
arrow.classList.toggle('rotate');
var content = this.nextElementSibling;
content.classList.toggle('hide');
});
}
document.addEventListener('DOMContentLoaded', function() {
createToggler('#navToggler', '#docsNav', 'docsSliderActive');
createToggler('#tocToggler', 'body', 'tocActive');
var headings = document.querySelector('.toc-headings');
headings && headings.addEventListener('click', function(event) {
var el = event.target;
while(el !== headings){
if (el.tagName === 'A') {
document.body.classList.remove('tocActive');
break;
} else{
el = el.parentNode;
}
}
}, false);
function createToggler(togglerSelector, targetSelector, className) {
var toggler = document.querySelector(togglerSelector);
var target = document.querySelector(targetSelector);
if (!toggler) {
return;
}
toggler.onclick = function(event) {
event.preventDefault();
target.classList.toggle(className);
};
}
});
</script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Migrating from Swagger Codegen</h1></header><article><div><span><p>OpenAPI Generator is a fork of <code>swagger-codegen</code> between version <code>2.3.1</code> and <code>2.4.0</code>. For the reasons behind the fork, please refer to the <a href="https://github.com/OpenAPITools/openapi-generator/blob/master/docs/qna.md">Q&amp;A</a>.
This community-driven version called &quot;OpenAPI Generator&quot; provides similar functionalities and can be used as drop-in replacement.
This guide explains the major differences in order to help you with the migration.</p>
<p><strong>Table of contents</strong></p>
<ul>
<li><a href="#new-docker-images">New docker images</a></li>
<li><a href="#new-maven-coordinates">New maven coordinates</a></li>
<li><a href="#changes-in-maven-plugin">Changes in Maven Plugin</a></li>
<li><a href="#new-generators-names">New generators names</a></li>
<li><a href="#new-parameters-name">New parameters name</a></li>
<li><a href="#renamed-mustache-template-variables">Renamed Mustache Template Variables</a></li>
<li><a href="#ignore-file">Ignore file</a></li>
<li><a href="#metadata-folder">metadata-folder</a></li>
<li><a href="#new-default-values-for-the-generated-code">New default values for the generated code</a></li>
<li><a href="#new-fully-qualified-name-for-the-classes">New fully qualified name for the classes</a></li>
<li><a href="#body-parameter-name">Body parameter name</a></li>
<li><a href="#default-basepath">Default basePath</a></li>
<li><a href="#nullable">Nullable</a></li>
</ul>
<h2><a class="anchor" aria-hidden="true" id="new-docker-images"></a><a href="#new-docker-images" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>New docker images</h2>
<p>The docker images are available on DockerHub: <a href="https://hub.docker.com/u/openapitools/">https://hub.docker.com/u/openapitools/</a></p>
<p><strong>CLI for OpenAPI Generator</strong></p>
<p>Image to run OpenAPI Generator in the command line (see <a href="https://github.com/OpenAPITools/openapi-generator/blob/master/README.md#openapi-generator-cli-docker-image">OpenAPI Generator CLI Docker Image</a>)</p>
<p>Old: <code>swaggerapi/swagger-codegen-cli</code></p>
<p>New: <code>openapitools/openapi-generator-cli</code></p>
<p><strong>OpenAPI Generator as web service</strong></p>
<p>Image to run OpenAPI Generator as a web service (see <a href="https://github.com/OpenAPITools/openapi-generator/blob/master/README.md#openapi-generator-online-docker-image">OpenAPI Generator Online Docker Image</a>)</p>
<p>Old: <code>swaggerapi/swagger-generator</code></p>
<p>New: <code>openapitools/openapi-generator-online</code></p>
<h2><a class="anchor" aria-hidden="true" id="new-maven-coordinates"></a><a href="#new-maven-coordinates" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>New maven coordinates</h2>
<p>You can find our released artefact on maven central:</p>
<p><strong>Core:</strong></p>
<p>Old:</p>
<pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>io.swagger<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>swagger-codegen<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
</code></pre>
<p>New:</p>
<pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.openapitools<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>openapi-generator<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
</code></pre>
<p><strong>Cli:</strong></p>
<pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>io.swagger<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>swagger-codegen-cli<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
</code></pre>
<p>New:</p>
<pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.openapitools<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>openapi-generator-cli<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
</code></pre>
<p><strong>Maven plugin:</strong></p>
<pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>io.swagger<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>swagger-codegen-maven-plugin<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
</code></pre>
<p>New:</p>
<pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.openapitools<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>openapi-generator-maven-plugin<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
</code></pre>
<h2><a class="anchor" aria-hidden="true" id="changes-in-maven-plugin"></a><a href="#changes-in-maven-plugin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Changes in Maven Plugin</h2>
<p>OpenAPI Generator 3.0.0 has introduced <code>&lt;generatorName&gt;</code> and deprecated <code>&lt;language&gt;</code>, because this refers to generator names which embed more than just &quot;language&quot;.</p>
<p>If both options are present, you'll be presented with an error. If only <code>&lt;language&gt;</code> is provided, you'll be presented instructions for updating to the new config.</p>
<h2><a class="anchor" aria-hidden="true" id="new-generators-names"></a><a href="#new-generators-names" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>New generators names</h2>
<p>When you run OpenAPI Generator, you need to select a target generator (<code>-g</code> option in the cli).
All languages of <code>swagger-codegen</code> have been migrated to <code>openapi-generator</code>, but some names were changed, in order to be more consistent.</p>
<table>
<thead>
<tr><th>name in <code>swagger-codegen</code></th><th>name in <code>openapi-generator</code></th></tr>
</thead>
<tbody>
<tr><td><code>akka-scala</code></td><td><code>scala-akka</code></td></tr>
<tr><td><code>scala</code></td><td><code>scala-httpclient</code></td></tr>
<tr><td><code>jaxrs</code></td><td><code>jaxrs-jersey</code></td></tr>
<tr><td><code>qt5cpp</code></td><td><code>cpp-qt5</code></td></tr>
<tr><td><code>cpprest</code></td><td><code>cpp-restsdk</code></td></tr>
<tr><td><code>tizen</code></td><td><code>cpp-tizen</code></td></tr>
<tr><td><code>sinatra</code></td><td><code>ruby-sinatra</code></td></tr>
<tr><td><code>swift</code></td><td><code>swift2-deprecated</code></td></tr>
<tr><td><code>lumen</code></td><td><code>php-lumen</code></td></tr>
<tr><td><code>slim</code></td><td><code>php-slim</code></td></tr>
<tr><td><code>ze-ph</code></td><td><code>php-ze-ph</code></td></tr>
<tr><td><code>nancyfx</code></td><td><code>csharp-nancyfx</code></td></tr>
</tbody>
</table>
<p>We provide a temporary mapping in code for these old values. You'll receive a warning with instructions to migrate to the new names.</p>
<h2><a class="anchor" aria-hidden="true" id="new-parameters-name"></a><a href="#new-parameters-name" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>New parameters name</h2>
<p>Some parameters were renamed.
Often you need to replace &quot;Swagger&quot;, with &quot;OpenAPI&quot;.
Some examples:</p>
<table>
<thead>
<tr><th>name in <code>swagger-codegen</code></th><th>name in <code>openapi-generator</code></th></tr>
</thead>
<tbody>
<tr><td><code>debugSwagger</code></td><td><code>debugOpenAPI</code></td></tr>
<tr><td><code>GenerateSwaggerMetadata</code></td><td><code>GenerateOpenAPIMetadata</code></td></tr>
<tr><td><code>swagger.codegen.undertow.apipackage</code></td><td><code>openapi.codegen.undertow.apipackage</code></td></tr>
<tr><td><code>swagger.codegen.undertow.modelpackage</code></td><td><code>openapi.codegen.undertow.modelpackage</code></td></tr>
</tbody>
</table>
<h2><a class="anchor" aria-hidden="true" id="renamed-mustache-template-variables"></a><a href="#renamed-mustache-template-variables" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Renamed Mustache Template Variables</h2>
<p>The template variable <code>{{datatype}}</code> was renamed to <code>{{dataType}}</code> for consistency reason.
Corresponding java code: <code>CodegenProperty.datatype</code> is renamed to <code>CodegenProperty.dataType</code>.</p>
<p>(If you're <strong>not</strong> using customized templates with the <code>-t</code> option, you can ignore the mustache variable renaming above.)</p>
<h2><a class="anchor" aria-hidden="true" id="ignore-file"></a><a href="#ignore-file" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Ignore file</h2>
<p><code>.swagger-codegen-ignore</code> is replaced by <code>.openapi-generator-ignore</code>.
The syntax inside the file stays the same.</p>
<p>You don't need to rename the file manually, OpenAPI Generator will do it when your run it against an existing output directory.
(When there is no <code>.openapi-generator-ignore</code> in a folder, if a <code>.swagger-codegen-ignore</code> file is present it will be considered and renamed to <code>.openapi-generator-ignore</code>).</p>
<h2><a class="anchor" aria-hidden="true" id="metadata-folder"></a><a href="#metadata-folder" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Metadata folder</h2>
<p>The metatata folder (to store the <code>VERSION</code> file for example) is now called <code>.openapi-generator/</code> instead of <code>.swagger-codegen/</code>.</p>
<h2><a class="anchor" aria-hidden="true" id="new-default-values-for-the-generated-code"></a><a href="#new-default-values-for-the-generated-code" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>New default values for the generated code</h2>
<p>If you use a generator without specifying each parameter, you might see some differences in the generated code.
As example the default package name used in the generated code has changed.
You need to have a look at the specific value, depending of your target language, but often <code>Swagger</code> îs replaced by <code>OpenAPITools</code> and <code>io.swagger</code> is replaced by <code>org.openapitools</code>.
Concretely if you did not specify anything when you are generating java code, a file <code>org/openapitools/api/PetApi.java</code> might be generated instead of <code>io/swagger/api/PetApi.java</code>.</p>
<p>If this is a problem for you, you need to explicitly set the the parameter value in order to match with the <code>swagger-codgen</code> default value (<code>apiPackage</code> == <code>io.swagger</code> in the previous example with the java generator).</p>
<h2><a class="anchor" aria-hidden="true" id="new-fully-qualified-name-for-the-classes"></a><a href="#new-fully-qualified-name-for-the-classes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>New fully qualified name for the classes</h2>
<p>If you have extended some generators in your project, and you are looking for a specific class, replace the <code>io.swagger.codegen</code> package (old name) with <code>org.openapitools.codegen</code> package (new name).</p>
<p>Example: <code>org.openapitools.codegen.DefaultGenerator</code></p>
<h2><a class="anchor" aria-hidden="true" id="body-parameter-name"></a><a href="#body-parameter-name" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Body parameter name</h2>
<p>:bangbang: Since 4.0.0-beta, the body parameter name in OAS v2 is automatically preserved in the vendor extension <code>x-codegen-request-body-name</code></p>
<p>In OpenAPI spec v3, there's no body parameter, which is replaced by <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#request-body-object">Request Body Object</a>. The parameter name for Request Body is named automatically based on the model name (e.g. User). To control how the &quot;Request Body&quot; parameter is named, please add the vendor extension <code>x-codegen-request-body-name</code> to the operation:</p>
<p>OpenAPI Spec v3:</p>
<pre><code class="hljs css language-yaml"><span class="hljs-attr">paths:</span>
<span class="hljs-string">/pet:</span>
<span class="hljs-attr">post:</span>
<span class="hljs-attr">tags:</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">pet</span>
<span class="hljs-attr">summary:</span> <span class="hljs-string">Add</span> <span class="hljs-string">a</span> <span class="hljs-string">new</span> <span class="hljs-string">pet</span> <span class="hljs-string">to</span> <span class="hljs-string">the</span> <span class="hljs-string">store</span>
<span class="hljs-attr">description:</span> <span class="hljs-string">''</span>
<span class="hljs-attr">operationId:</span> <span class="hljs-string">addPet</span>
<span class="hljs-attr">x-codegen-request-body-name:</span> <span class="hljs-string">new_body_name</span>
<span class="hljs-attr">responses:</span>
<span class="hljs-attr">'405':</span>
<span class="hljs-attr">description:</span> <span class="hljs-string">Invalid</span> <span class="hljs-string">input</span>
<span class="hljs-attr">security:</span>
<span class="hljs-bullet">-</span> <span class="hljs-attr">petstore_auth:</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">'write:pets'</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">'read:pets'</span>
<span class="hljs-attr">requestBody:</span>
<span class="hljs-string">$ref:</span> <span class="hljs-string">'#/components/requestBodies/Pet'</span>
</code></pre>
<p>OpenAPI Spec v2:</p>
<pre><code class="hljs css language-yaml"><span class="hljs-attr">paths:</span>
<span class="hljs-string">/pet:</span>
<span class="hljs-attr">post:</span>
<span class="hljs-attr">tags:</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">pet</span>
<span class="hljs-attr">summary:</span> <span class="hljs-string">Add</span> <span class="hljs-string">a</span> <span class="hljs-string">new</span> <span class="hljs-string">pet</span> <span class="hljs-string">to</span> <span class="hljs-string">the</span> <span class="hljs-string">store</span>
<span class="hljs-attr">description:</span> <span class="hljs-string">''</span>
<span class="hljs-attr">operationId:</span> <span class="hljs-string">addPet</span>
<span class="hljs-attr">x-codegen-request-body-name:</span> <span class="hljs-string">new_body_name</span>
<span class="hljs-attr">consumes:</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">application/json</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">application/xml</span>
<span class="hljs-attr">produces:</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">application/xml</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">application/json</span>
<span class="hljs-attr">parameters:</span>
<span class="hljs-bullet">-</span> <span class="hljs-attr">in:</span> <span class="hljs-string">body</span>
<span class="hljs-attr">name:</span> <span class="hljs-string">body</span>
<span class="hljs-attr">description:</span> <span class="hljs-string">Pet</span> <span class="hljs-string">object</span> <span class="hljs-string">that</span> <span class="hljs-string">needs</span> <span class="hljs-string">to</span> <span class="hljs-string">be</span> <span class="hljs-string">added</span> <span class="hljs-string">to</span> <span class="hljs-string">the</span> <span class="hljs-string">store</span>
<span class="hljs-attr">required:</span> <span class="hljs-literal">true</span>
<span class="hljs-attr">schema:</span>
<span class="hljs-string">$ref:</span> <span class="hljs-string">'#/definitions/Pet'</span>
<span class="hljs-attr">responses:</span>
<span class="hljs-attr">'405':</span>
<span class="hljs-attr">description:</span> <span class="hljs-string">Invalid</span> <span class="hljs-string">input</span>
<span class="hljs-attr">security:</span>
<span class="hljs-bullet">-</span> <span class="hljs-attr">petstore_auth:</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">'write:pets'</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">'read:pets'</span>
</code></pre>
<p>If your API client is using named parameters in the function call (e.g. Perl required &amp; optional parameters, Ruby optional parameters), you will need to add <code>x-codegen-request-body-name</code> to the spec to restore the original body parameter name.</p>
<h2><a class="anchor" aria-hidden="true" id="default-basepath"></a><a href="#default-basepath" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Default basePath</h2>
<p>The default <code>basePath</code> has been changed from <code>https://localhost</code> to <code>http://localhost</code> (http without s)</p>
<h2><a class="anchor" aria-hidden="true" id="nullable"></a><a href="#nullable" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Nullable</h2>
<p>OpenAPI spec v3 has better support for <code>nullable</code>. If you're still using OpenAPI/Swagger spec v2, please use <code>x-nullable: true</code> instead.</p>
</span></div></article></div><div class="docLastUpdate"><em>Last updated on 1/20/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/roadmap"><span class="arrow-prev"></span><span>Roadmap</span></a><a class="docs-next button" href="/docs/fork-qna"><span>Swagger Codegen Fork: Q&amp;A</span><span class="arrow-next"></span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#new-docker-images">New docker images</a></li><li><a href="#new-maven-coordinates">New maven coordinates</a></li><li><a href="#changes-in-maven-plugin">Changes in Maven Plugin</a></li><li><a href="#new-generators-names">New generators names</a></li><li><a href="#new-parameters-name">New parameters name</a></li><li><a href="#renamed-mustache-template-variables">Renamed Mustache Template Variables</a></li><li><a href="#ignore-file">Ignore file</a></li><li><a href="#metadata-folder">Metadata folder</a></li><li><a href="#new-default-values-for-the-generated-code">New default values for the generated code</a></li><li><a href="#new-fully-qualified-name-for-the-classes">New fully qualified name for the classes</a></li><li><a href="#body-parameter-name">Body parameter name</a></li><li><a href="#default-basepath">Default basePath</a></li><li><a href="#nullable">Nullable</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/mono-logo.svg" alt="OpenAPI Generator" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/en/customization.html">Customizing Generators</a><a href="/docs/en/integrations.html">Workflow Integrations</a></div><div><h5>Community</h5><a href="/en/users.html">User Showcase</a><a href="http://stackoverflow.com/questions/tagged/openapi-generator" target="_blank" rel="noreferrer noopener">Stack Overflow</a><a href="https://join.slack.com/t/openapi-generator/shared_invite/enQtNzAyNDMyOTU0OTE1LTY5ZDBiNDI5NzI5ZjQ1Y2E5OWVjMjZkYzY1ZGM2MWQ4YWFjMzcyNDY5MGI4NjQxNDBiMTlmZTc5NjY2ZTQ5MGM">Chat Room</a><a href="https://twitter.com/oas_generator" target="_blank" rel="noreferrer noopener">Twitter</a></div><div><h5>More</h5><a href="/blog">Blog</a><a href="https://github.com/OpenAPITools/openapi-generator">GitHub Repo</a><a class="github-button" href="https://github.com/OpenAPITools/openapi-generator" data-icon="octicon-star" data-count-href="/OpenAPITools/openapi-generator/stargazers" data-show-count="true" data-count-aria-label="# stargazers on GitHub" aria-label="Star this project on GitHub">Star</a></div></section><section class="copyright">Copyright © 2020 OpenAPI-Generator Contributors (https://openapi-generator.tech). (Both &quot;OpenAPI Tools&quot; (https://OpenAPITools.org) and &quot;OpenAPI Generator&quot; are not affiliated with OpenAPI Initiative (OAI))</section></footer></div></body></html>