全て。Swashbuckle パッケージを使用して WebApi 2 を文書化しようとしています。
API が単独で実行されている場合、すべてうまく機能します。つまり、 localhost/api/swaggerで ui に移動し、localhost/api/swagger/docs/v1で json に移動します。
ただし、本番アプリは、このプロジェクトの webapiconfig メソッドを別の global.asax.cs から実行することにより、この同じ Webapi プロジェクトを初期化します。これは、別の Web プロジェクト (メイン アプリケーションのプロジェクト) です。したがって、API の URL はlocalhost/apiではなく、localhost /web/apiのようになります。
現在、スワッシュバックルはそのようにまったく機能しません。
- もちろん、localhost/api/swagger は「API.WebApiApplication」を読み込めないというエラーを生成します。
- ローカルホスト/ウェブ/スワガー = 404
- ローカルホスト/web/api/swagger = 404
私はどこでも見ようとしましたが、見つけたのは回避策だけです。
c.RootUrl(req => req.RequestUri.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/").TrimEnd('/'));
残念ながら機能しません。おそらく機能するはずであり、何かを変更する必要があるだけですが、このプロパティが正確に何を期待し、何に設定する必要があるかさえわかりません。
当てはまらないかもしれません - 私たちが持っているセットアップには何か他のものやスワッシュバックルのコードの変更が必要かもしれません.
あなたが提供できるどんな助けにも感謝します。私は残りのドキュメントのために、swagger (およびスワッシュバックル) が本当に好きになり始めています。