問題タブ [swashbuckle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 名前空間のバージョン管理された ASP.NET WebAPI で Swagger/Swashbuckle を使用する
名前空間のバージョン管理を使用してバージョン管理した ASP.NET Web API アプリがあります。
たとえば、このメソッドはapi/v1/Location/Processでアクセスできます。
Swagger は、MultipleApiVersions メソッドを使用してこの設定に対処するように設定されています。
ただし、Swagger UI が生成されると、メソッドの URL に完全な名前空間とコントローラー名が含まれます: api/V1.Location/Process
正しい URL を作成できるように、Swagger が使用するパスを編集する方法を知っている人はいますか? (基本的には、そのフルストップを置き換えるだけです)。理想的には、ルーティング属性を使用したくありません。
(ここに私のものと同様の質問がありますが、私が対処したいいくつかの鋭い点が欠けています。)
iis - Swagger / Swashbuckle は IIS Express では機能しますが、IIS では機能しません
次のガイドを使用して、Web API アプリケーションに Swashbuckle をインストールしました: http://bitoftech.net/2014/08/25/asp-net-web-api-documentation-using-swagger/
ローカルの IIS Express / Cassini インストールで実行し、ブラウザで http://localhost:59988/swagger/ を指定するとうまく機能します
ただし、たとえばhttp://my.localhost/swagger/で、IIS8.5 を介してアプリケーションにアクセスする場合は機能しないようです 。
/swagger/ui/index/ にリダイレクトされ、例外がスローされます
{"メッセージ":"エラーが発生しました。","ExceptionMessage":"マッピングが見つかりません - index/","ExceptionType":"Swashbuckle.SwaggerUi.AssetNotFound","StackTrace":" Swashbuckle.SwaggerUi.EmbeddedAssetProvider で。 GetAsset(String rootUrl, String path)\r\n at Swashbuckle.Application.SwaggerUiHandler.SendAsync(HttpRequestMessage request, CancellationToken cancelToken)"}
問題は、IIS が私をリダイレクトし、URL の末尾に末尾のスラッシュを追加するという事実から発生しているようです (これは、エラー メッセージにも示されています)。
私は持っている
質問: IIS が URL の末尾にスラッシュを追加するのはなぜですか? IIS でスワッシュバックルを機能させるためのオプションは何ですか?
asp.net-web-api2 - SwashBuckle/Swagger - OAuth リソース所有者のパスワード フロー
Asp.Net Web API に Swagger を実装しようとしていますが、問題が発生しています。
私はパスワード リソース オーナー フローを使用しています。これを行うには回避策を追加する必要があります。これについては、次のスタック オーバーフローの質問で説明します。
Swagger/Swashbuckle: OAuth2 とリソース所有者のパスワード認証情報付与
すべてが機能しています。ベアラー トークンは JavaScript を介して現在のブラウザー ウィンドウのリクエスト ヘッダーに追加されますが、承認を必要とするコントローラー メソッドへの API 呼び出しは「401 - 承認に失敗しました」を返します。
ベアラー トークンを取得してヘッダーを追加する JavaScript は次のとおりです。
Swagger の応答の Curl は次のとおりです。
curl -X GET --header "Accept: application/json" --header "Authorization: Bearer NqlSG-WyTx2zkYE8xFklGyZWlQDZdsCKZBHruEXvX47N7PAzw4-jZ4eH5D0yFzQTXj13RwKFFt1rUZt2fzWj1vR5UR87wdlKC3YvsTojYV4-3DsWwY7qYRfiKPuM0j09c3X5lnrtlBVJ1rBRUH0TLjfw_yGxgoLBwOJl9xyC1YWNoPOe2nzL4lMOHodAnMem0IBMJmUo3Rt575tnWAbBsQXWhlImDIxCZXvkZdJtlXfIfBSUdY9gfRWL0ZjKbf7m2-yLzH0gpMAMuKaADmJlIudJc0d4SP1Nn2Kh2HuVH8CX4QgZuu4egl9N6rY2smorP2vBSC4_dC4CpmYYzOTu2wUnUhHDY2Q6NWl377ijDKwZLcW9jtD-2tBiEGmFuRV0mVGnh0zc4w9Ao9jPCdtrbSyGitgloBW-UG2bfyao3eE" " http://localhost:42291/api/v1/claims "
これにはまったく問題がありません。
次に、Postman を使用して、javascript 呼び出しで生成されたのと同じアクセス トークンを使用して、まったく同じ URL 呼び出しを呼び出しました...
何を推測します...それはうまくいきます。
編集
コントローラーから認証属性を削除しようとしたので、コントローラーメソッドにヒットしたときにリクエストを確認できます。
要求ヘッダーを見ると、Authorization プロパティは null です。
これがなぜなのかわかりません。CURL は、リクエストに配置されたことを示しています。
編集2
私のセキュリティ定義を含めました:-
編集 3 この API 呼び出しの Swagger UI に表示される cURL は、コマンド ラインで直接 cURL を介して公開すると、問題なく動作します。
今、私は完全に混乱しています。
c# - Swagger で HTTP エラー 403.14 - Forbidden が表示される
Web API で Swagger を使用しようとしています。Visual Studio と共にインストールされた ASP.NET 4.6 テンプレートの "Azure API App" テンプレートを使用しているだけSwashbuckle.Core
ですSwaggerConfig.cs
。API は正常に動作します (正常に呼び出すことができます) が、「 http://mybaseurl/swagger/」にアクセスしようとすると、次のエラーが発生します。
HTTP エラー 403.14 - 許可されていません Web サーバーは、このディレクトリの内容を一覧表示しないように構成されています。
Swagger がロードされていないようです。他の誰かがこれを前に手に入れましたか?私はこれを回避できないようです。ありがとうございます。詳細をお知らせできる場合はお知らせください。
私の SwaggerConfig.cs は次のようになります。
azure - Swagger ファイルから Azure API アプリ クライアントを生成するときの NotSupportedException
Web API サービスから Swashbuckle によって生成された Swagger メタデータ ファイルを取得しました。Azure API アプリ クライアントを生成しようとすると (Visual Studio 2015 > [追加] > [Azure API アプリ クライアント] > [Swagger メタデータ ファイル] を使用)、次のエラーがスローされます。
ジェネレーターでサポートされていないものをモデルで使用していると思います。どういうわけか、何が問題なのかを説明するより詳細なエラー メッセージを取得できますか?
asp.net-mvc - スワッシュバックル構成エラー
ASP.NET MVC WebAPI プロジェクトに Swashbuckle を追加しようとしています。Visual Studio 2013 で空の MVC プロジェクト テンプレートから始めました。後で必要なファイル/パッケージなどを追加しましたが、どうにかして Swashbuckle をそれに統合することができません。このコードを実行するたびに、 に次のエラーが表示されSwashConfig.cs
ます。
以下は私のweb.config
package.config
Global.asax.cs
WebApiConfig.cs
SwaggerConfig.cs
RouteConfig.cs
何かが非常に間違っています。助けてください。
私は使用しています:
c# - Swagger/Swashbuckle カスタム シリアライザー IControllerConfiguration ASP.NET WebAPI を構成する方法
API の 2 つの異なるバージョン (レガシーと新規) を実装する WebAPI エンドポイントがあります。従来のエンドポイントは、すべてのオブジェクトがアンダースコア付きの小文字の単語としてシリアル化された特定のシリアライザーを使用し、v2 エンドポイントはキャメル ケースのプロパティ名を使用します。たとえば、V1 = "document_type" および V2 = "documentType"
これは現在、コントローラー固有の属性を使用してシリアライゼーションを定義することで実現されています。
REST を介してクライアントから呼び出された場合、これはすべて正常に機能しますが、Swagger によって生成されたドキュメントには常に、従来のシリアライザー設定を使用してプロパティ名が表示されます。各バージョンを適切にシリアル化するためのスワッシュ バックルの構成に関する提案はありますか?
asp.net - swagger 2.0をWebApiエリアに対応させるには?
私は自分の Asp.Net WebApi 4.0 プロジェクトに swagger-ui (バージョン 2.0) を統合しています。これは私のルート構成です:
また、swagger-ui 生成ドキュメントには重複した項目が含まれています。同じコントローラー+アクションがあります。このようにcommon
:active
この問題を回避する方法、またはswaggerサポート領域を有効にする方法(名前は何でも)。各コントローラーの領域を指定できます。正しい結果は次のようになります。