{"componentChunkName":"component---src-templates-blog-post-js","path":"/swagger-codegen-1/","result":{"data":{"site":{"siteMetadata":{"title":"/dev/yukarinoki"}},"markdownRemark":{"id":"9be42dc5-0c73-5b98-ad01-f4e245b131ac","excerpt":"swagger SwaggerはAPIの仕様記述言語とツール群です。APIの仕様書をYAMLまたはJSONの形式で記述し、Swagger EditorやSwagger UIを使って可視化・共有することができます。 そして、ちょっとすごいところはSwaggerで書かれたAPI…","html":"<h2 id=\"swagger\" style=\"position:relative;\"><a href=\"#swagger\" aria-label=\"swagger permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" 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>swagger</h2>\n<p>SwaggerはAPIの仕様記述言語とツール群です。APIの仕様書をYAMLまたはJSONの形式で記述し、Swagger EditorやSwagger UIを使って可視化・共有することができます。</p>\n<p>そして、ちょっとすごいところはSwaggerで書かれたAPI記述をサーバーのコード、クライアントのコードに変換することができます。そのためのツールがswagger-codegenです。</p>\n<h2 id=\"swagger-codegen\" style=\"position:relative;\"><a href=\"#swagger-codegen\" aria-label=\"swagger codegen permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" 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>swagger-codegen</h2>\n<p>swagger-codegen\n<a href=\"https://github.com/swagger-api/swagger-codegen\">https://github.com/swagger-api/swagger-codegen</a></p>\n<p>swagger-codegenには、goやnodejsをはじめとした複数の言語やフレームワークを対象としたバックエンドを含んでいます。今回はtype-scriptのaxiosクライアント、nodejsのサーバーコードを生成してみました。</p>\n<h2 id=\"手順\" style=\"position:relative;\"><a href=\"#%E6%89%8B%E9%A0%86\" aria-label=\"手順 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" 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>手順</h2>\n<h3 id=\"cloneとbranchの切り替え\" style=\"position:relative;\"><a href=\"#clone%E3%81%A8branch%E3%81%AE%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88\" aria-label=\"cloneとbranchの切り替え permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" 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>cloneとbranchの切り替え</h3>\n<p>まず、<a href=\"https://github.com/swagger-api/swagger-codegen\">swagger-codegen</a> をクローンします。\nクローンできたら、branchを自分のopenapi記述のバージョンによって切り替えます。\nopenapi2.0なら<code class=\"language-text\">master</code>、openapi3.0なら<code class=\"language-text\">3.0.0</code>です。私は<code class=\"language-text\">3.0.0</code>のブランチを利用しています。\n私は、最新コミットでやりましたが、バージョンを固定したい方は適当なTagにcheckoutしてください。\n僕は<code class=\"language-text\">commit 8f191f46a853bed86debc74f10f242712ae4758e</code>でやっています。</p>\n<h2 id=\"build-swagger-codegen\" style=\"position:relative;\"><a href=\"#build-swagger-codegen\" aria-label=\"build swagger codegen permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" 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>build swagger-codegen</h2>\n<p>いくつかのbuild方法がありますが、Dockerを使うのが最も簡単な方法だと思います。\nDockerのイメージのビルド、swagger-codegenのビルドを一括でやってくれるshellスクリプトが用意されています。</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-shell line-numbers\"><code class=\"language-shell\">./run-in-docker.sh mvn package</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>5分ぐらいでビルド完了して以下の出力が出ます。</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-shell line-numbers\"><code class=\"language-shell\"><span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> ------------------------------------------------------------------------\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> Reactor Summary <span class=\"token keyword\">for</span> swagger-codegen-project <span class=\"token number\">3.0</span>.38-SNAPSHOT:\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> \n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> swagger-codegen-project <span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span> SUCCESS <span class=\"token punctuation\">[</span> <span class=\"token number\">11.138</span> s<span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> swagger-codegen <span class=\"token punctuation\">(</span>core library<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span>. SUCCESS <span class=\"token punctuation\">[</span>03:25 min<span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> swagger-codegen <span class=\"token punctuation\">(</span>executable<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span>. SUCCESS <span class=\"token punctuation\">[</span> <span class=\"token number\">23.943</span> s<span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> swagger-codegen <span class=\"token punctuation\">(</span>maven-plugin<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span>. SUCCESS <span class=\"token punctuation\">[</span> <span class=\"token number\">10.012</span> s<span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> swagger-generator <span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span><span class=\"token punctuation\">..</span> SUCCESS <span class=\"token punctuation\">[</span>01:19 min<span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> ------------------------------------------------------------------------\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> BUILD SUCCESS\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> ------------------------------------------------------------------------\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> Total time:  05:31 min\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> Finished at: <span class=\"token number\">2023</span>-01-21T04:56:44Z\n<span class=\"token punctuation\">[</span>INFO<span class=\"token punctuation\">]</span> ------------------------------------------------------------------------</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>これが出れば成功です。</p>\n<p>試しに、<code class=\"language-text\">./run-in-docker.sh langs</code>を実行してみましょう。利用可能なバックエンドの一覧が表示されるはずです。</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-shell line-numbers\"><code class=\"language-shell\"><span class=\"token punctuation\">{</span>your <span class=\"token function\">host</span> name<span class=\"token punctuation\">}</span>@ swagger-codegen % ./run-in-docker.sh langs                     \n++ <span class=\"token function\">dirname</span> ./run-in-docker.sh\n+ <span class=\"token builtin class-name\">cd</span> <span class=\"token builtin class-name\">.</span>\n+ <span class=\"token assign-left variable\">maven_cache_repo</span><span class=\"token operator\">=</span>/Users/<span class=\"token punctuation\">{</span>your <span class=\"token function\">host</span> name<span class=\"token punctuation\">}</span>/.m2/repository\n+ <span class=\"token function\">mkdir</span> -p /Users/nao/.m2/repository\n++ <span class=\"token function\">id</span> -u\n++ <span class=\"token function\">id</span> -g\n+ docker run --rm -it -w /gen -e <span class=\"token assign-left variable\">GEN_DIR</span><span class=\"token operator\">=</span>/gen -e <span class=\"token assign-left variable\">MAVEN_CONFIG</span><span class=\"token operator\">=</span>/var/maven/.m2 -u <span class=\"token number\">501</span>:20 -v /Users/nao/test/swagger-codegen:/gen -v /Users/nao/.m2/repository:/var/maven/.m2/repository --entrypoint /gen/docker-entrypoint.sh maven:3-jdk-8 langs\nAvailable languages: <span class=\"token punctuation\">[</span>dart, aspnetcore, csharp, csharp-dotnet2, go, go-server, dynamic-html, html, html2, java, jaxrs-cxf-client, jaxrs-cxf, inflector, jaxrs-cxf-cdi, jaxrs-spec, jaxrs-jersey, jaxrs-di, jaxrs-resteasy-eap, jaxrs-resteasy, micronaut, spring, nodejs-server, openapi, openapi-yaml, kotlin-client, kotlin-server, php, python, python-flask, r, ruby, scala, scala-akka-http-server, swift3, swift4, swift5, typescript-angular, typescript-axios, typescript-fetch, javascript<span class=\"token punctuation\">]</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<h2 id=\"openapiyamlからコードをgenerate\" style=\"position:relative;\"><a href=\"#openapiyaml%E3%81%8B%E3%82%89%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92generate\" aria-label=\"openapiyamlからコードをgenerate permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" 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>openapi.yamlからコードをgenerate</h2>\n<p>今回利用するbackendは、clientが<code class=\"language-text\">typescript-axios</code>、backendが<code class=\"language-text\">nodejs-server</code>です。clientは複数の選択肢がありますが、serverはjavascript(typescript)なら<code class=\"language-text\">nodejs-server</code>しか選択肢がないようです。</p>\n<p>まず、自分の作成したopenapi.yamlをswagger-codegenの直下にコピーします。\nその上で、以下を実行します。</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-shell line-numbers\"><code class=\"language-shell\">./run-in-docker.sh generate -i openapi.yaml <span class=\"token punctuation\">\\</span>\n    -l typescript-axios -o /gen/out/test-client -DpackageName<span class=\"token operator\">=</span>test-client <span class=\"token comment\"># client</span>\n\n./run-in-docker.sh generate -i openapi.yaml <span class=\"token punctuation\">\\</span>\n    -l nodejs-server -o /gen/out/test-server -DpackageName<span class=\"token operator\">=</span>test-server <span class=\"token comment\"># server</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>すると以下のような出力が出て、生成が完了します。</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-shell line-numbers\"><code class=\"language-shell\"><span class=\"token punctuation\">..</span>.\n05:00:38.447 <span class=\"token punctuation\">[</span>Thread-1<span class=\"token punctuation\">]</span> INFO  i.s.codegen.v3.AbstractGenerator - writing <span class=\"token function\">file</span> /gen/out/test-client/tsconfig.json\n05:00:38.459 <span class=\"token punctuation\">[</span>Thread-1<span class=\"token punctuation\">]</span> INFO  i.s.codegen.v3.AbstractGenerator - writing <span class=\"token function\">file</span> /gen/out/test-client/.swagger-codegen-ignore\n05:00:38.470 <span class=\"token punctuation\">[</span>Thread-1<span class=\"token punctuation\">]</span> INFO  i.s.codegen.v3.AbstractGenerator - writing <span class=\"token function\">file</span> /gen/out/test-client/.swagger-codegen/VERSION</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span></span></pre></div>\n<p><code class=\"language-text\">swagger-codegen/out/test-{client, server}</code>に出力されたコードがあるはずです。</p>\n<h3 id=\"実行\" style=\"position:relative;\"><a href=\"#%E5%AE%9F%E8%A1%8C\" aria-label=\"実行 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" 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>実行</h3>\n<p>生成された各ディレクトリにREADME.mdがあります。そこにどうやって生成コードを実行すればいいのか書いてあります。\n今回の場合、どちらとも以下です。</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-shell line-numbers\"><code class=\"language-shell\"><span class=\"token function\">npm</span> <span class=\"token function\">install</span>\n<span class=\"token function\">npm</span> start</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n<p>これで実行できました。</p>\n<h2 id=\"まとめ\" style=\"position:relative;\"><a href=\"#%E3%81%BE%E3%81%A8%E3%82%81\" aria-label=\"まとめ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" 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>まとめ</h2>\n<p>今回は、swagger-codegenを使ってopenapi記述から、javascriptのclient, serverのコードを生成してみました。もちろん、実装上必要なコード全てが生成できるわけではありませんが、参考にするには十分なコードが生成されていると思います。このコードをパーツとして切り貼りして開発すれば、実装の速度や正確性も向上するのではないかと思っています。</p>","tableOfContents":"<ul>\n<li><a href=\"/swagger-codegen-1/#swagger\">swagger</a></li>\n<li><a href=\"/swagger-codegen-1/#swagger-codegen\">swagger-codegen</a></li>\n<li>\n<p><a href=\"/swagger-codegen-1/#%E6%89%8B%E9%A0%86\">手順</a></p>\n<ul>\n<li><a href=\"/swagger-codegen-1/#clone%E3%81%A8branch%E3%81%AE%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88\">cloneとbranchの切り替え</a></li>\n</ul>\n</li>\n<li><a href=\"/swagger-codegen-1/#build-swagger-codegen\">build swagger-codegen</a></li>\n<li>\n<p><a href=\"/swagger-codegen-1/#openapiyaml%E3%81%8B%E3%82%89%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92generate\">openapi.yamlからコードをgenerate</a></p>\n<ul>\n<li><a href=\"/swagger-codegen-1/#%E5%AE%9F%E8%A1%8C\">実行</a></li>\n</ul>\n</li>\n<li><a href=\"/swagger-codegen-1/#%E3%81%BE%E3%81%A8%E3%82%81\">まとめ</a></li>\n</ul>","frontmatter":{"title":"swager-codegenのまともな使い方","date":"January 22, 2023","description":""}}},"pageContext":{"slug":"/swagger-codegen-1/","previous":{"fields":{"slug":"/ante_compile/"},"frontmatter":{"title":"Anteをコンパイルするときの謎つまづきポイント"}},"next":{"fields":{"slug":"/polymarket-binary-options-intro/"},"frontmatter":{"title":"How Binary Options Work on Prediction Markets: A Developer's Introduction to Polymarket Contracts"}}}}}