現在、従来の WCF SOAP ベースのサービスから切り替えて、製品用の WebApi サービスの作成を開始しようとしています。私たちが抱えている課題は、API ドキュメントを提供する方法です。SwaggerUi/swash バックルに出会いました。制限の 1 つは、IIS ではなく Windows サービスで WebApi サービスをホストしたくないということです。私は Web Api を初めて使用するので、間違った方法で行っている可能性があります。
テストのために、コンソール アプリケーションで Web API をホストしています。HttpClient を使用して Web API で Get メソッドを呼び出すことはできますが、Web ブラウザーに URL を入力すると同じメソッドにアクセスできません (自己ホスト型 Web API ではこれは正常ですか?)。
そこで、Swashbuckle.core nuget パッケージをインストールし、Startup クラス (Owin セルフホスト) に次のコードを含めました。
var config = new HttpConfiguration();
config
.EnableSwagger(c =>
{
c.IncludeXmlComments(GetXmlCommentsPath());
c.SingleApiVersion("v1", "WebApi");
c.ResolveConflictingActions(x => x.First());
})
.EnableSwaggerUi();
private static string GetXmlCommentsPath()
{
var path = $@"{AppDomain.CurrentDomain.BaseDirectory}\WebApiHost.XML";
return path;
}
http://localhost:5000/swagger/ui/indexの場所を参照すると 、IE で「ページを表示できません」というメッセージが表示されます。クロムについても同様です。ドキュメントを自動的に取得するために、コンソール/Windows サービス アプリケーションで WebApi をホストするときに何か特別なことをする必要がありますか?
(プロジェクトの Xml ドキュメントを有効にしました)
テストプロジェクトを添付しました。以下のリンクに従ってください。
よろしく、
ナス