javascript - 我应该在 API 中公开可导出字段吗?

标签 javascript api schema graphql api-design

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

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

最佳答案

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

公开计算字段的原因:

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

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

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

不公开计算字段的原因:

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

  • 该值的计算方式因某些上下文而异,并且在服务器端确定上下文是不可能或不切实际的。在上下文无关的类型中公开上下文相关的字段也会导致缓存方面的问题。

关于javascript - 我应该在 API 中公开可导出字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54796704/

相关文章:

javascript - 在 x 轴上带有范围选择器的 d3 条形图(如 dygraphs)

javascript - 动画正在降低网页的性能

android - Azure APP 服务中的自定义 API 示例搜索 Android 客户端

c# - 从 JSON 字符串中获取特定值

database - 密码盐数据类型

javascript - 如何删除 javascript 中的事件监听器?

javascript - 如何将我的浏览器上播放的实时视频流式传输到另一个用户的浏览器?

java - 无法使用 javamail api 通过 Gmail 发送邮件

database-design - 使用缩写表名为表中的每个字段名添加前缀是一个好习惯吗?

sharepoint-2010 - 通过 schema.xml 增强富文本字段