0

現在、従来の 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 ドキュメントを有効にしました)

テストプロジェクトを添付しました。以下のリンクに従ってください。

テスト プロジェクト

よろしく、

ナス

4

1 に答える 1