コード生成機能
API仕様に基づいて、ApidogはTypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rustなど、130以上のプログラミング言語やフレームワークのビジネスコードを自動生成できます。
Apidogには「サーバースタブとクライアントSDKの生成」「クライアントコードの生成」「データモデルコードの生成」という3つのコード生成機能があります。
- サーバースタブとクライアントSDKの生成: サーバースタブはAPI開発者向け、クライアントSDKはAPI利用者向けです。サーバー側とクライアント側の両方のコードを生成します。サーバースタブはAPIのベース実装を提供し、クライアントSDKは様々な言語でAPIを利用するためのライブラリを提供します。
- クライアントコードの生成: API利用者向けです。APIと連携するためのクライアントアプリケーションのコードを生成します。
- データモデルコード生成: API利用者向けです。APIで使用されるデータ構造のコードを生成します。リクエストやレスポンスのオブジェクトを定義するクラスや構造体を含み、アプリケーション全体の型安全性と一貫性を確保します。
サーバースタブとクライアントSDKの生成
この機能を使えば、プラットフォームで定義したAPI仕様に基づいて、サーバー側のコードスタブとクライアント側のSDKを自動生成できます。
サーバースタブは、APIの実装のベースとなるコードテンプレートで、APIの処理やレスポンス生成の土台を提供します。一方、クライアントSDKは、様々なアプリケーションからAPIを簡単に利用できるように事前設定されたコードを提供します。
生成手順
1. コード生成プラグインのインストール
API仕様画面で「コード生成」をクリックし、「サーバースタブとクライアントSDKの生成」を選択します。
ビジネスコード生成ページで「ダウンロードとインストール」ボタンをクリックします。
2. コードの生成
必要なサーバーまたはクライアントコードを選択し、「コード生成」をクリックします。
3. カスタムテンプレートの使用
Custom Code Templates機能を使用して、チームの設計仕様に合わせたコードを生成し、様々な個別のニーズに対応することもできます。
対応言語・フレームワーク
言語 | Server/Client | フレームワーク |
---|---|---|
Java | Server | Spring, Inflector, Msf4j, Pkmst, Play Framework, Undertow Server, Vertx, Vertx Web, JAX-RS Cxf, JAX-RS Cxf Cdi, JAX-RS Cxf Extended, JAX-RS Jersey, JAX-RS Resteasy, JAX-RS Resteasy Eap, JAX-RS Spec |
Java | Client | Android, Java |
PHP | Server | Laravel, Lumen, Symfony, Ze Ph, Slim4, Slim (Deprecated), Silex (Deprecated) |
PHP | Client | PHP |
Swift | Client | Swift5, Swift4, Swift3 (Deprecated), Swift2 (Deprecated) |
Kotlin | Server | Kotlin Server, Kotlin Spring, Kotlin Vertx |
Kotlin | Client | Kotlin |
JavaScript | Client | Apollo, Flowtyped, Closure Angular |
Node.js | Server | Express, GraphQL Express |
TypeScript | Client | Axios, Fetch, Redux Query, Angular, Angularjs, Jquery, Rxjs, Node, Aurelia, Inversify |
C++ | Server | Pistache Server, Qt5 Qhttpengine Server, Restbed Server |
C++ | Client | Qt5 Client, Restsdk, Tizen |
C# | Server | C# Nancyfx |
C# | Client | C#, C# Netcore, C# Dotnet2 |
ASP.NET | Server | ASP.NET Core |
Dart | Client | Dart, Dart Dio, Dart Jaguar |
Go | Server | Go Server, Go Gin Server |
Go | Client | Go, Go (Experimental) |
C | Client | C |
Objective-C | Client | Objective-C |
Scala | Server | Scala Akka Http Server, Scala Finch, Scala Lagom Server, Scala Play Server |
Scala | Client | Scala Akka, Scala Gatling, Scala Sttp, Scalaz, Scala Httpclient (Deprecated) |
Clojure | Client | Clojure |
Groovy | Client | Groovy |
Python | Server | Python Aiohttp, Python Blueplanet, Python Flask |
Python | Client | Python, Python (Experimental) |
Rust | Server | Rust Server |
Rust | Client | Rust |
Ruby | Server | Ruby On Rails, Ruby Sinatra |
Ruby | Client | Ruby |
R | Client | R |
Perl | Client | Perl |
PowerShell | Client | PowerShell |
JMeter | Client | JMeter |
Bash | Client | Bash |
Lua | Client | Lua |
F# | Server | F# Functions, F# Giraffe Server |
OCaml | Client | OCaml |
Erlang | Server | Erlang Server |
Erlang | Client | Erlang Client, Erlang Proper |
Flash | Client | Flash |
Elixir | Client | Elixir |
Haskell | Server | Haskell |
Haskell | Client | Haskell Http Client |
Elm | Client | Elm |
Nim | Client | Nim |
Ada | Server | Ada Server |
Ada | Client | Ada |
Apex | Client | Apex |
Eiffel | Client | Eiffel |
:::tip[]
Apidogのコードテンプレート機能は、OpenAPI Generatorをベースに簡略化されています。OpenAPI generatorテンプレートのルールについて詳しくは、このYoutube動画を参照してください。
:::
クライアントコードの生成
クライアントコードは、様々な開発環境でAPIリクエストを行うために使用します。APIのドキュメントタブの右側にある「クライアントコード生成」ボタンをクリックして生成できます。
また、APIの実行タブにあるコードアイコン「</>
」をクリックしても生成できます。
注意:上記の方法で生成されるクライアントコードには、API仕様のみが含まれ、リクエストパラメータの値は含まれません。パラメータ値を含むクライアントコードを生成したい場合は、まずリクエストを送信し、「実際のリクエスト」タブに切り替えてください。スクロールすると、パラメータ値を含むクライアントコードが表示されます。
対応言語
言語 | バリエーション |
---|---|
Shell | cURL, cURL-Windows, Httpie, wget, PowerShell |
JavaScript | Fetch, Axios, jQuery, XHR, Native, Request , Unirest |
Java | Unirest, OkHttp |
Swift | URLSession |
Go | Native |
PHP | cURL, Guzzle, pecl_http, HTTP_Request2 |
Python | http.client, Requests |
HTTP | HTTP |
C | libcurl |
C# | RestSharp |
Objective-C | NSURLSession |
Ruby | Net::HTTP |
OCaml | Cohttp |
Dart | http |
R | httr, RCurl |
データモデルコードの生成
データモデルコードは、スキーマを定義するために使用され、APIでのデータ送信時のシリアル化や受信時のデシリアル化処理によく使用されます。SQLコードタイプを生成すると、データベースのテーブル作成シナリオでテーブル作成文を定義し、データベースにテーブルを作成することもできます。
データモデルにアクセスするには、Schema Editorの「コード生成」ボタンをクリックします。
その後、生成したいプログラミング言語を選択し、具体的なコードスタイルの設定ができます。
対応言語
APIドキュメントでのコード生成
Apidogで生成されたAPIドキュメントでは、簡単に「クライアントコード」と「データモデルコード」を生成できます。詳しくはAPIドキュメントでのコード生成についてをご覧ください。