web-dev-qa-db-ja.com

ASP.NET CoreコントローラーのTypeScriptクライアントコードを自動生成する

ASP.NET Core Webアプリケーション(現在はVisual Studio 2017RCとwebpackを使用)からTypesScriptクライアントコードを自動的に生成する方法を探しています。

Visual StudioからのビルドパイプラインまたはwebpackでTypeScriptクライアントを生成する既存のツールはありますか? Swaggerミドルウェアを使用してからSwagger URLからクライアントに生成しようとしましたが、中間Swagger生成がジョブに適したツールであるかどうかはわかりません。また、ビルドツールからの切断は理想的ではありません。

17
Fionn
  1. NSwagSwashbuckle/swagger-codegen は両方とも素晴らしいです。

    1. Typewriter はもう1つの素晴らしいオプションです。

    2. だから、ここに私が決定を下す方法があります:

      • C#モデルに従ってTypeScriptモデルを生成する必要がある場合は、TypeWriterを選択してください
      • Swagger Code Genのビルドまたは公開ステップとして追加できるコマンドラインを使用して、完全なクライアントサイドコードを生成する必要がある

      • カスタマイズを追加するには、生成されたSwagger仕様または生成されたコードで遊ぶ必要があります-NSwag

      • Swagger UIでクライアントインラインコードスニペットを表示する必要がある場合は、 SwaggerUI-snippets を使用します
16
Gaurav Madaan

Swashbuckle をASP.NET Core webappに追加してから Swagger/OpenAPI仕様 を生成できます。

Swagger/OpenAPI仕様では、Swagger Codegenを使用して、TypeScript APIクライアント(Node、Angular、Angular2、Fetch)だけでなく、C#、Java、JS、SwiftなどのAPIクライアントやAPIドキュメントも生成できます。

Swagger Codegenを試す最も簡単な方法は、仕様をインポートして https://editor.swagger.io を使用し、生成するターゲットAPIクライアント/サーバーを選択することです。 ( https://editor.swagger.io レバレッジ https://generator.swagger.io はコードを生成し、generator.swagger.ioはSwagger Codegenを使用しています)

Swagger Codegenは、C#NancyfxまたはASP.NETコアでサーバースタブを生成することもできるため、 https://editor.swagger.io を使用して仕様を記述し、両方を生成することにより、コントラクトファーストアプローチに従うことを検討できますAPIクライアントとサーバースタブ。

更新:2018年5月、Swagger Codegenの約50人のトップコントリビューターとテンプレート作成者は、Swagger Codegenをフォークして、 OpenAPI Generator と呼ばれるコミュニティ主導型バージョンを維持することを決定しました。詳細については、 Q&A を参照してください。

11
William Cheng

別のオプションはNSwagで、ASP.NET(コア)コントローラーからSwagger仕様を生成し、このSwagger仕様からTypeScriptクライアントを生成できます(Angular、AngularJS、Fetchの場合など)。統合は非常に簡単で、多くの高度な機能(継承、名前付き列挙、コード拡張など)をサポートします。

http://NSwag.org

NSwagStudio UIを使用すると、開始するのが非常に簡単で、NPMパッケージですべてを自動化できます(つまり、cmd行でconfigファイルを実行します)。

enter image description here

私はプロジェクトの著者の一人です。

7
Rico Suter

autorest.TypeScript クライアントコードジェネレーターもご覧ください。すべてのモデル定義に適切なインターフェイスを提供し、読み取り専用のプロパティと列挙型を正確に定義します。生成されるクライアントのユーザーエクスペリエンスを向上させるのに役立つ多くの カスタム拡張 をサポートします。生成された サンプルクライアント を確認できます。

ボーナス:生成されたTypeScriptクライアントは、node.jsおよびブラウザーでも機能します。

2

TypeScriptクライアントがjQueryまたはAngular 2+を使用している場合、代替 ​​ASP.NET Web APIクライアントジェネレーター は、SDLC中のswaggerツールチェーンよりも便利でオーバーヘッドが少ない場合があります。

また、.NET Frameworkおよび.NET Standardに加えて、.NET Coreもサポートしています。

0
ZZZ