web-dev-qa-db-ja.com

Swagger 1.2仕様からC#クライアントを生成する方法は?

どのプラットフォームにも数百万ものオプションがあるようですが、C#の簡単な解決策を見つけるのに苦労しています。私が見つけたすべてのものは私に問題を与えたようです:それらは単に機能しません(例えば http://swaggercodegen.azurewebsites.net/ )、または2.0のみをサポート(例 AutoRest および NSwag ))。ツールの半分は、サポートするバージョンさえ明確ではありません:-(

公式ツール を知っていますが、これにはJDK 7が必要ですが、これは現在のところオプションではありません。

必死で私はswagger仕様を2.0に変換しようとしましたが、試した変換ツールの半分が機能せず、矛盾するアドバイスを提供したり、使用方法を理解できませんでした(nodejsのすぐ奥にいると感じました)。 ..これは本当に素晴らしい新世界ですか?!WSDLを復活させます;-))。

13
Jack Ukleja

オンラインswagger codegenを使用して、何もインストールせずにクライアントを作成できます。

https://generator.swagger.io/

POST/gen/clients/{language}を選択し、次のような本文を入力します。

{
  "options": {},
  "swaggerUrl": "http://petstore.swagger.io/v2/swagger.json"
}

仕様にアクセスするには、独自のURLを入力してください。オプションを渡す必要がある場合は、optionsハッシュに入れることができます。 C#で利用可能なオプションのリストは、ジェネレーターからも利用できます。

https://generator.swagger.io/api/gen/clients/csharp-dotnet2

{
  "packageName": {
    "opt": "packageName",
    "description": "C# package name (convention: Camel.Case).",
    "type": "string",
    "default": "IO.Swagger"
  },
  "packageVersion": {
    "opt": "packageVersion",
    "description": "C# package version.",
    "type": "string",
    "default": "1.0.0"
  },
  "clientPackage": {
    "opt": "clientPackage",
    "description": "C# client package name (convention: Camel.Case).",
    "type": "string",
    "default": "IO.Swagger.Client"
  }
}
5
fehguy