【问题标题】:How to tackle Class level changes in REST API如何处理 REST API 中的类级别更改
【发布时间】:2021-06-04 03:06:30
【问题描述】:

我有用于 CRUD 操作的 REST 服务提供程序。

我的前端通过我们的 ASP.net Web API 访问第三方 API
第三方 REST 服务 > 我们的 ASP.net Web API > 我们的前端

开发人员通过转换第三方 API JSON 响应在 Web API 中创建了 .net 类。

现在,当第三方添加/删除和更新他们的类时,就会出现问题。我们的代码中断,因为我们的 api 中不存在某些属性。

有什么方法可以自动更新类吗?
应该采用替代方法而不是预先创建类?

【问题讨论】:

  • 这太宽泛了,您需要提供有关服务的具体信息,例如您如何知道类已更改、您收到的错误消息以及这些新字段是否是您的代码需要的字段知道关于。还有你知道类都改成什么了,你怎么知道的?

标签: asp.net json api schema rest


【解决方案1】:

您所描述的是您的 API 有一些 proxy 类定义,用于与第 3 方 API 进行通信。这是一种常见的方法,许多 API 专门发布它们的元数据来支持这种类型的实现。

如果第 3 方 API 是为公共或至少是您的消费而设计的,那么您应该首先联系他们的开发人员以获得支持,大多数 API 提供商会很乐意分享代码示例甚至预编译的客户端程序集,以便更轻松地访问他们的API。

如果第 3 方 API 具有可查询的元数据,那么您可以使用 Visual Studio Connected Services 或 T4 模板来生成类。

如果您只使用他们 API 的一小部分子集,并且更改发生在您不使用的 API 区域,那么您可以通过构造和解析请求来手动与 API 交互,并手动响应消息或使用匿名类型序列化。

有许多可用的技术,但是实现将高度特定于您正在与之交互的服务类型

【讨论】:

  • 让我提供更多关于开发人员如何在 ASP.net API 中创建代理类的信息。他们使用 SOAPUI 进行 POST。复制 JSON 响应并粘贴为 Visual Studio 中的类。一旦开发人员编写客户端,更新值并将其发布回第三方 API,它就可以完美运行。但。如果将来第三方 API 对其类进行任何更改,我们必须事先知道并需要更新我们的源代码。我在 WCF 中寻找类似的东西,更新服务参考将为您的代码带来最新的更改。
  • 通常第 3 方会发布更新,让您知道即将发生变化以及如何适应。听起来您可能正在使用不适合您使用的服务,这没什么大不了的,但值得牢记的是,特别是如果您可以使用其他对开发人员更友好的服务提供商。 T4 或 Connected services 将为您提供“更新服务引用”的相同功能,但您不能只切换 WCF,除非该服务符合 WCF。
猜你喜欢
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 2019-09-29
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
相关资源
最近更新 更多