【发布时间】:2022-04-27 05:37:06
【问题描述】:
我正在使用 ASP.Net Core 创建服务。 该服务基于 ApiController。
[ApiController]
public class XmlALaCarteServiceController : ControllerBase
{
private IXmlALaCarteConnectionProvider _connectionProvider;
public XmlALaCarteServiceController(IXmlALaCarteConnectionProvider connectionProvider)
{
_connectionProvider = connectionProvider;
}
[Route("api/XmlALaCarteService/V1/InitializeConnection")]
[HttpGet]
public ActionResult<InitializeResponse> InitializeConnection([FromQuery] InitializeRequest request)
{
InitializeResponse result = _connectionProvider.CreateConnection(request.Map()).Map();
return result;
}
[Route("api/XmlALaCarteService/V1/GetDataAsXML")]
[HttpGet("{id}")]
public ActionResult<XmlDocument> GetDataAsXML(DataRequest request)
{
return new XmlDocument();
}
}
如果我没记错的话,其他人可以连接到我的服务并对其执行操作。
我们曾经拥有相同的服务,但作为 asmx。这个 asmx 带有一个 WSDL。 有没有办法让我的新服务也一样?
【问题讨论】:
-
WSDL 通常用于 SOAP 服务。但是 API 控制器不是 SOAP。如果您想要正确的 SOAP,您可能需要做很多工作才能使其与类似 REST 的 API 控制器一起使用。可能有一些库可以为您执行此操作,例如this one,但我不知道它们的效果如何。通常,这些天您很高兴您没有使用复杂的 SOAP,而是使用了一个精简的 REST API。
标签: asp.net-web-api asp.net-core service wsdl