【问题标题】:should I expose derivable field in API?我应该在 API 中公开可派生字段吗?
【发布时间】:2019-02-20 23:09:20
【问题描述】:

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

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

【问题讨论】:

    标签: javascript api schema graphql api-design


    【解决方案1】:

    在这种特殊情况下,我会说,但这取决于。以下是一些需要考虑的事项:

    暴露计算域的原因:

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

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

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

    不公开计算域的原因:

    • 计算的值涉及客户端应用程序的实现细节,而不是业务规则。例如,它可能不是服务器返回客户端应用程序中使用的路由的地方。

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

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 2011-01-26
      • 2021-10-19
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多