openapi-generator-cliとは?初心者でも分かる使い方とメリット共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
openapi-generator-cliとは?初心者でも分かる使い方とメリット共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


openapi-generator-cliとは?

openapi-generator-cliは、OpenAPI仕様からクライアントライブラリやサーバースタブを自動的に生成するためのコマンドラインツールです。OpenAPIはAPIの仕様を機械可読な形で表す形式で、互換性の高いコードを自動生成できる点が特徴です。

なぜ開発に役立つのか

手作業でのコード作成は間違いが起きやすく、時間もかかります。自動生成を使えば、仕様の変更時にも対応するコードの更新を効率化できます。

主な用途

用途説明
クライアントライブラリの生成さまざまな言語向けのクライアントライブラリを自動生成します。
サーバースタブの生成指定した言語のサーバースタブを自動生成して開発をスピードアップします。
APIドキュメントの生成仕様から人が読めるドキュメントを自動作成します。
コードテンプレートのカスタマイズテンプレートを変更して、プロジェクトのスタイルに合わせられます。

インストール方法

前提: Node.js がインストールされている必要があります。まだなら official site から入手してください。

npm経由:npm install -g @openapitools/openapi-generator-cli

実行可能なコマンドの例は以下です。

openapi-generator-cli version でバージョンを確認し、openapi-generator-cli generate -i spec.yaml -g javascript -o ./out/javascript でクライアントを生成します。

基本的な使い方

まずは OpenAPI 仕様ファイルを用意します。仕様ファイルは YAML または JSON 形式で記述します。次に、どの言語でクライアントやサーバーを生成するかを -g オプションで指定します。

例1: openapi-generator-cli generate -i spec.yaml -g javascript -o ./out/javascript

例2: openapi-generator-cli generate -i spec.yaml -g java --library okhttp-gson -o ./out/java

トラブルシューティングのコツ

もし生成時にエラーが出た場合は、仕様ファイルの妥当性をまず確認します。OpenAPI仕様のバージョン必須フィールドが揃っているかをチェックしましょう。

よくある質問

Q: どの言語を選ぶべきですか?A: 使いたいクライアントの言語や既存コードベースに合わせて選択します。

まとめ

openapi-generator-cliを使うと、API仕様から自動的にコードを生成して開発を早く進められます。初期設定は少し手間ですが、習慣化すれば仕様の変更にも強い、メンテナンス性の高いプロジェクトを作れます。特にチームでAPIを共有する場合、生成ツールとしての一貫性が大きな武器になります。


openapi-generator-cliの同意語

OpenAPI Generator CLI
OpenAPI Generatorのコマンドラインインターフェース。OpenAPI仕様に基づいてクライアントコード、サーバーコード、ドキュメントなどを生成する機能を、端末のコマンドから呼び出す入口です。
openapi-generator-cli
openapi-generator-cliは、OpenAPI Generatorの公式CLIのパッケージ名。コマンドを介して生成設定を指定し、コードを自動生成します。
OpenAPI Generator Command Line Interface
OpenAPI Generatorのコマンドラインインターフェース。特定の言語向けのコード生成を、コマンドのオプションと入力パラメータで制御します。
OpenAPI Generator コマンドライン
OpenAPI Generatorのコマンドライン版の表現。ターミナル上で実行する操作系の呼称です。
OpenAPI GeneratorのCLI
OpenAPI GeneratorのCLIは、コマンドラインから機能を操作するためのインターフェースです。設定をCLI引数で渡して生成を実行します。
OpenAPI Generator CLIツール
OpenAPI GeneratorのCLIツールは、OpenAPI仕様からクライアントやサーバーコードを自動生成するコマンド群を指します。
CLI for OpenAPI Generator
OpenAPI GeneratorのためのCLI。CLIとはコマンドラインインターフェースの略で、端末で操作するツールです。
OpenAPI Generator for CLI
CLI向けのOpenAPI Generator。コマンドラインでの利用を前提に提供される機能群を指します。
OpenAPI Generator コマンド
OpenAPI Generatorのコマンドセットの総称。具体的な操作を表すコマンド名を指す場合が多いです。

openapi-generator-cliの対義語・反対語

手動生成
OpenAPI仕様からコードを自動生成するOpenAPI Generator CLIに対し、コードを手作業で作成・実装すること。自動生成に比べて手間がかかり、更新の追従が難しくなることがあります。
GUI版
CLI(コマンドライン)で操作するOpenAPI Generator CLIの対義語として、グラフィカルユーザーインターフェースを使って操作するツールを指します。直感的で学習コストが低い場合が多いですが、自由度や自動化の範囲は限定されることがあります。
クローズドソース
ソースコードが公開されていない状態。オープンソースの対義語として用いられ、利用条件が限定されることがあります。
非公開仕様
公開されていない仕様。OpenAPIのように広く共有・標準化された仕様とは異なり、社内だけで共有される独自仕様を指します。
非オープンソース
ソースコードが公開されていないソフトウェア。OpenAPI Generatorのようにオープンソースで提供されるものとは反対の形態です。
有料版
無料・オープンソースで提供されることが多いツールに対し、商用ライセンスや有料提供を意味します。
独自仕様
公式の公開仕様(例: OpenAPI仕様)とは異なる自社・組織独自の仕様。

openapi-generator-cliの共起語

OpenAPI
API定義仕様の総称。OpenAPI Generatorはこの仕様ファイルを入力としてコードを生成します。
OpenAPI Generator
OpenAPI仕様に沿ってクライアント・サーバーのコードを自動生成するツール。openapi-generator-cliの核ツール。
Swagger
OpenAPIの前身で、仕様名と関連ツール群を指すことが多い用語。
Swagger Codegen
Swagger Codegenは旧ツール。現在はOpenAPI Generatorに置換され、共起語として現れる場合があります。
CLI
コマンドラインインターフェイス。openapi-generator-cliはCLIベースで操作します。
command line
コマンドライン上で操作すること。オプションや引数を使います。
generate
仕様からコードを生成する操作。クライアントやサーバーの雛形を作成します。
code generation
自動的にコードを作成するプロセス全体。
client
生成されるクライアントライブラリ。APIを呼び出す側のコードです。
server
生成されるサーバーの雛形コード。APIを実装する側のコードです。
docs
生成されるAPIドキュメント。仕様に基づく説明ファイルを作成します。
language
生成ターゲットのプログラミング言語。例としてJava、Python、TypeScriptなど。
generator-name
生成対象言語を指示するオプション名(-g/--generator-name)。
Java
Java向けのクライアント/サーバーコードを生成します。
TypeScript
TypeScript向けのクライアント/サーバーコードを生成します。
Python
Python向けのクライアント/サーバーコードを生成します。
C#
C#向けのクライアント/サーバーコードを生成します。
Go
Go言語向けのクライアント/サーバーコードを生成します。
PHP
PHP向けのクライアント/サーバーコードを生成します。
Ruby
Ruby向けのクライアント/サーバーコードを生成します。
Kotlin
Kotlin向けのクライアント/サーバーコードを生成します。
Swift
Swift向けのクライアント/サーバーコードを生成します。
JSON
OpenAPI仕様はJSONでも表現可能です。入力仕様としてJSONファイルを指定します。
YAML
OpenAPI仕様はYAMLでも表現可能です。入力仕様としてYAMLファイルを指定します。
input-spec
入力するOpenAPI仕様ファイルのパスを指定するオプション。
output
生成物を出力するディレクトリを指定するオプション。
additional-properties
生成時に追加で設定するプロパティを渡すオプション。
template-dir
カスタムテンプレートを格納するディレクトリを指定するオプション。
config
設定ファイルを使って複数のプロパティを一括指定するオプション。
skip-validate-spec
OpenAPI仕様の検証をスキップして生成を進めるオプション。
model
仕様から生成されるデータモデルコードの対象。
api
仕様から生成されるAPIクラスの対象。
invoker
呼び出しを実装する層。多くは低レベルHTTPロジックを担当。
model-name-suffix
生成されるモデルクラス名の接尾辞を指定する設定。
api-package
Java等で生成されるAPIクラスのパッケージ名。
model-package
生成されるモデルクラスのパッケージ名。
invoker-package
生成されるInvokerクラスのパッケージ名。
package-name
生成コードの基本パッケージ名(言語別設定)
group-id
MavenプロジェクトのグループID。Javaクライアント/サーバーの場合に使われます。
artifact-id
MavenプロジェクトのアーティファクトID。Javaコードの識別子になります。
library
特定のHTTPクライアントライブラリを選択する設定。例: okhttp-gson, retrofit。
template
テンプレートの指定やカスタムテンプレートの利用に関連する設定。
docker
openapi-generator-cliをDockerで実行する際の関連語。
docker-image
公式のopenapi-generator-cli Dockerイメージ名。
petstore
OpenAPIのサンプル仕様として広く使われる例。
help
ヘルプ情報を表示するコマンド。使い方を確認できます。

openapi-generator-cliの関連用語

OpenAPI Generator
OpenAPI Generator は、OpenAPI 仕様からクライアントライブラリ、サーバースタブ、API ドキュメントを自動生成するオープンソースのツールです。openapi-generator-cli はこの機能をコマンドラインで提供します。
openapi-generator-cli
このツールは、OpenAPI Generator のコマンドラインインターフェースです。仕様ファイルを元にコードやドキュメントを生成します。
OpenAPI Specification (OAS)
API の設計図となる公式標準で、エンドポイント・リクエスト/レスポンス・モデルなどを YAML または JSON で記述します。
OAS 3.x
OpenAPI の最新版系。3.x では構造が改善され、表現力・拡張性が向上しています。
YAML
人間にも機械にも読みやすいデータ表現形式。OpenAPI 仕様は主に YAML で記述されることが多いです。
JSON
データを表現する軽量な記法。OpenAPI 仕様を JSON 形式でも表現できます。
Swagger
OpenAPI 以前の仕様名およびツール群の総称。現在は OpenAPI に統合されていますが、用語としては依然使われます。
Swagger Codegen
Swagger Codegen は OpenAPI Generator の前身ツール。現在は OpenAPI Generator が後継として機能を引き継いでいます。
クライアントライブラリ
特定のプログラミング言語から API を利用するためのライブラリ。openapi-generator-cli は多数の言語のクライアントを自動生成します。
サーバースタブ
API を実装するための雛形コード(サーバー側の骨組み)を自動生成します。
モデル生成
OpenAPI 仕様のスキーマからデータモデルのクラスを生成します。
テンプレート
生成されるコードの雛形。言語ごとに用意されたテンプレートを元にコードが作られます。
Mustache テンプレート
Mustache はテンプレートエンジンの一種で、生成時にコードを組み立てる際に使われます。
言語別ジェネレーター
各プログラミング言語ごとに用意された生成モジュール。例: java、python、typescript、go、ruby などがあります。
generator-name / -g
生成対象の言語を指定するパラメータ。例: -g java で Java のクライアント/サーバーを作成します。
input-spec / -i
生成元となる OpenAPI 仕様ファイル(YAML/JSON)。
output / -o
生成物を出力するディレクトリ。
config / -c
ジェネレーターの設定を記述した config ファイル(YAML/JSON)。
additional-properties / --additional-properties
生成時の追加プロパティを指定します。出力を細かくカスタマイズ可能です。
global-property / --global-property
グローバル設定。モデルの生成有無など、出力全体の設定を指定します。
template-dir / -t
カスタムテンプレートのディレクトリを指定します。
Docker image
公式の Docker イメージを使えば環境を汚さずに実行できます。例: openapitools/openapi-generator-cli。
Java Runtime
Java 仮想マシン(JRE/JDK)が必要です。JAR 形式で配布される場合は java -jar で実行します。
Node.js / NPM
Node ベースの実装もあり、npm または npx 経由で使用可能です。例: npm i -g @openapitools/openapi-generator-cli。
JAR の実行形式
openapi-generator-cli.jar として配布され、Java -jar で実行します。
CLI コマンド generate
OpenAPI 仕様からコードを生成する最も基本的なコマンド。-i, -g, -o などを組み合わせて使います。
CLI コマンド validate
OpenAPI 仕様の文法・整合性を検証します。
CLI コマンド batch
複数の言語・設定で一括生成を実行するモードです。
CLI コマンド config-help
特定のジェネレーターの設定オプションを表示します。
仕様バージョン
OpenAPI 3.x 系が現状の主流。バージョンによりサポートされる機能が異なります。
テンプレート言語 Mustache
Mustache はコード生成時に使われるテンプレートエンジンで、テンプレートファイルをレンダリングします。
SwaggerHub
SwaggerHub などのオンライン編集・ホスティングサービスと連携して API 仕様を管理することができます。

openapi-generator-cliのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14212viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2158viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1037viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
745viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
716viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
661viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
575viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
529viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
509viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
499viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
467viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
456viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
432viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
392viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
387viws
select句・とは?初心者でも分かるSQLの基本と使い方共起語・同意語・対義語も併せて解説!
370viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
353viws
ダイレクトチャットとは?初心者向けガイドで使い方と注意点を徹底解説共起語・同意語・対義語も併せて解説!
336viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
285viws
解像度スケールとは?初心者でも分かる解像度スケールの基礎と使い方共起語・同意語・対義語も併せて解説!
280viws

新着記事

インターネット・コンピュータの関連記事