将 webapi 暴露给第三方

Exposing webapi to third party

不了解我的 DTO(对象 Web 服务 returns 或作为参数)的第三方客户端如何使用我的 api 方法。我需要以某种方式公开我的 DTO 吗?

文档是您的朋友。发布一些说明 DTO 应该是什么的文档。如果您了解您的客户,则可以创建包含适当 DTO 的包。我们为我们的 .NET 客户做到了这一点。我们向 nuget 发布了一个可移植的 class 库,因此这些客户端中的任何一个都可以下载该包并使用它们。但是,我们已经停止了,因为这可能会使客户端应用程序开发人员不堪重负。 IE。假设您有 100 个 DTO,但一个简单的客户端应用实际上只需要其中的 5 个。通过包含该包,现在有如此多的选项,以至于不知道实际使用哪个 DTO 可能会造成混淆,这会导致客户端应用程序可能做的比它应该做的更多。我们喜欢通过只使用它需要的 DTO 来保持我们的客户端应用程序精简。是的,有一点 DTO 定义重复。

另一方面,如果您走包路线,您基本上可以构建一个 SDK 来使用您的 API。你会看到 Microsoft 做了很多这样的事情来帮助解决 Azure 存储或 Azure 服务总线等领域的复杂性。所有这些都有支持 REST APIs,但 SDK 确保它以设计的方式使用,并且可能是最优化的方式。