我正在使用一个名为 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 旨在快速但不需要处理许多并发用户。
谢谢