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

时间:2019-02-20 23:09:20

标签: javascript api schema graphql api-design

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

我陷入困境-我应该公开URL字段还是客户端应使用ID在其末尾创建它?

1 个答案:

答案 0 :(得分:1)

在这种情况下,我会说,但这要视情况而定。这里有一些要考虑的事情:

要求公开计算字段:

  • 保持对客户端隐藏的业务逻辑。通常,我们不想公开一个或多个用于确定计算值的字段,或者不希望客户端(或最终用户)知道使用了哪些字段。

  • 确保客户端与业务逻辑无关。如果业务规则发生更改,则只会影响服务器代码。

  • 减少代码重复。即使有多个使用该API的应用程序,代码也只需在服务器上编写一次。

原因不公开计算字段:

  • 计算值涉及客户端应用程序的实现详细信息,而不涉及业务规则。例如,返回客户端应用程序内使用的路由可能不是服务器的位置。

  • 应如何计算该值取决于某些上下文,因此确定上下文服务器端是不可能或不实际的。在其他上下文无关类型内公开上下文相关字段也可能导致缓存方面的麻烦。