我应该在API中公开派生字段吗?

问题描述 投票:0回答:1

假设我有一个字段定义的模式 - id和值看起来像 - 1234。现在,在几乎所有情况下,客户都需要创建一个URL - 例如https://<server>/<path>/receipt/<id>

我处于两难境地 - 我应该公开URL字段还是应该使用id在客户端创建它?

javascript api schema graphql api-design
1个回答
1
投票

我会在这个特殊情况下说是,但这取决于。这里有一些要考虑的事情:

公开计算字段的原因:

  • 保持业务逻辑对客户端隐藏。通常,我们不希望暴露用于确定计算值的一个或多个字段,或者不希望客户端(或最终用户)知道使用了哪些字段。
  • 确保客户端对业务逻辑不可知。如果业务规则发生更改,则只会影响服务器代码。
  • 减少代码重复。代码只需在服务器上写一次,即使有多个应用程序使用API​​。

不公开计算字段的原因:

  • 计算值涉及客户端应用程序的实现细节,而不是业务规则。例如,它可能不是服务器返回客户端应用程序内使用的路由的位置。
  • 如何计算值取决于某些上下文,并且确定上下文服务器端是不可能或不切实际的。在其他与上下文无关的类型中公开依赖于上下文的字段也会导致缓存方面的麻烦。
© www.soinside.com 2019 - 2024. All rights reserved.