【问题标题】:Create WSDL for an ASP.Net Core ApiController为 ASP.Net Core ApiController 创建 WSDL
【发布时间】: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。
  • 您可以使用Swagger 来描述您的 REST API。有一个 nuget package 用于 asp.net 核心项目,它可以在 JSON 中创建描述文档。它与soap/wsdl非常相似。

标签: asp.net-web-api asp.net-core service wsdl


【解决方案1】:

要让您的 .Net Core webapi 生成 WSDL/DISCO LIKE 定义,请查看 SmartBear 的 SwaggerUI:Swagger UI

NuGet 包:Swashbuckle.AspNetCore.Swagger 和 Swashbuckle.AspNetCore

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 2021-05-16
    • 2017-03-08
    相关资源
    最近更新 更多