0

我正在使用一个名为 SwaggerWcf 的库来为我的托管 WCF REST API 的应用程序生成 Swagger 定义。我终于使用以下代码使其按我的意愿工作:

  var swaggerHost = new WebServiceHost(typeof(SwaggerWcfEndpoint));
                var endpoint =
                    new WebHttpEndpoint(
                        ContractDescription.GetContract(typeof(ISwaggerWcfEndpoint)),
                        new EndpointAddress("http://localhost/docs"))
                    {
                        AutomaticFormatSelectionEnabled = true,
                        FaultExceptionEnabled = true
                    };

                // required to generate the swagger content
                var e = new SwaggerWcfEndpoint();

                swaggerHost.AddServiceEndpoint(endpoint);

                var apiHost = new WebServiceHost(typeof(RestDataInterface));
                var endpoint2 =
                    new WebHttpEndpoint(
                        ContractDescription.GetContract(typeof(IRestDataInterface)),
                        new EndpointAddress("http://localhost/api"))
                    {
                        AutomaticFormatSelectionEnabled = true,
                        FaultExceptionEnabled = true
                    };


            apiHost.AddServiceEndpoint(endpoint2);

            swaggerHost.Open();
            apiHost.Open();

我现在的问题是:这是正确的做法吗?如您所见,我正在创建两个 WebServiceHost 实例。一个用于招摇,一个用于我的实际 API。虽然这似乎工作正常,但我错过了什么吗?此 API 旨在快速但不需要处理许多并发用户。

谢谢

4

0 回答 0