用于描述 API 响应的接口应该包含所有字段还是仅包含应用程序实际需要的字段?
Should interfaces used for describing API responses, contain all fields or only the ones the application actually needs?
假设我有一个 API 端点 return 和具有 20 个字段 的对象。在这 20 个领域中,我只对两个感兴趣。
我的 (Typescript) 界面(在 FE 端)应该描述 整个对象 还是只描述我需要的 两个字段 ?这两种方法是否有任何(有意义的)影响?
想到的一些注意事项:
- (完整)开发人员无需直接查看请求即可看到他可用的所有内容。
- (仅 2 个)开发人员不会被字段的数量及其复杂性所淹没。
- (仅2个)开发人员只需查看接口就知道应用程序中正在使用哪些字段。
一个子问题:责任应该在BE这边吗? API 应该只是 FE 实际需要的 return 东西吗? (让我们假设 GraphQL 和其他让 FE 创建查询的服务不可用)。每当FE需要什么东西时,这是否只会给BE团队带来不必要的工作?
我非常感谢这两个问题的答案!
谢谢!
通常 API 应该只 return 与 FE 本身相关的字段。如果有些字段对 FE 很重要,但有时可能未定义,它们仍应作为 null
值 returned 到 FE,因为即使它是 null
, FE 至少应该知道该字段有时需要。
如果您的 API 对象包含 20 个字段,那么您的界面也应该如此,您可以将 API 响应映射到一个界面,该界面仅包含您的 FE 所需的字段,但是是
a) 容易出错,因为您基本上必须映射到可能存在或可能不存在的属性,因为您无法首先知道 API 响应是什么样的并且
b) 它会创建不必要的代码和 API 应该在 return 响应之前为您完成的工作。
Imo,最好知道字段在那里,而不是映射响应并基本上忽略 API 响应的一部分。您的模型和接口应始终位于单独的文件中,尤其是在这种情况下,记录它们的用途(例如,在 属性 上方的评论中)。
假设我有一个 API 端点 return 和具有 20 个字段 的对象。在这 20 个领域中,我只对两个感兴趣。
我的 (Typescript) 界面(在 FE 端)应该描述 整个对象 还是只描述我需要的 两个字段 ?这两种方法是否有任何(有意义的)影响?
想到的一些注意事项:
- (完整)开发人员无需直接查看请求即可看到他可用的所有内容。
- (仅 2 个)开发人员不会被字段的数量及其复杂性所淹没。
- (仅2个)开发人员只需查看接口就知道应用程序中正在使用哪些字段。
一个子问题:责任应该在BE这边吗? API 应该只是 FE 实际需要的 return 东西吗? (让我们假设 GraphQL 和其他让 FE 创建查询的服务不可用)。每当FE需要什么东西时,这是否只会给BE团队带来不必要的工作?
我非常感谢这两个问题的答案!
谢谢!
通常 API 应该只 return 与 FE 本身相关的字段。如果有些字段对 FE 很重要,但有时可能未定义,它们仍应作为 null
值 returned 到 FE,因为即使它是 null
, FE 至少应该知道该字段有时需要。
如果您的 API 对象包含 20 个字段,那么您的界面也应该如此,您可以将 API 响应映射到一个界面,该界面仅包含您的 FE 所需的字段,但是是
a) 容易出错,因为您基本上必须映射到可能存在或可能不存在的属性,因为您无法首先知道 API 响应是什么样的并且
b) 它会创建不必要的代码和 API 应该在 return 响应之前为您完成的工作。
Imo,最好知道字段在那里,而不是映射响应并基本上忽略 API 响应的一部分。您的模型和接口应始终位于单独的文件中,尤其是在这种情况下,记录它们的用途(例如,在 属性 上方的评论中)。