用于描述API响应的接口,应该包含所有字段还是只包含应用程序实际需要的字段?

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

假设我有一个 API 端点,返回带有 20个领域. 在这20个领域中,我只 对两个.

我的(Typescript)界面(在FE端),是否应该描述一下。全物 或只 两个领域 我的要求?这两种方法是否有任何(有意义的)影响?

我想到的一些考虑。

  1. (全) 开发者可以看到所有可用的东西,而不用直接看请求。
  2. (只有2)开发者不会被字段的数量及其复杂性所淹没。
  3. (只有2)开发者只需看一下界面,就知道应用程序中使用了哪些字段。

一个子问题。责任是否应该在BE端?API是否应该只返回FE实际需要的东西?假设像GraphQL和其他让FE创建查询的服务都不可用)。这是否会给BE团队带来不必要的工作,无论FE何时需要什么?

我将非常感激对这两个问题的回答。

谢谢您

typescript interface frontend api-design
1个回答
1
投票

一般来说,API应该只返回与FE本身相关的字段。如果有一些字段对FE很重要,但有时可能是未定义的,那么它们仍然应该作为一个字段返回给FE。null 值,因为即使它是 null如果你的API对象包含20个字段,那么你的接口也应该包含20个字段,你可以将API响应映射到一个只有FE需要的字段的接口上,但这是不可能的,因为FE至少应该知道这个字段有时是需要的。

如果你的API对象包含20个字段,那么你的接口也应该包含20个字段,你可以将API响应映射到一个只有你的FE所需要的字段的接口上,但那就是

a)容易出错,因为你基本上必须映射到可能存在或不存在的属性,因为你不可能首先知道API响应是什么样子的,而且

b) 它创造了不必要的代码和工作,而API应该在返回响应之前为你做这些工作。

我认为,最好是知道字段在那里,而不是映射响应并基本上忽略API响应的一部分。你的模型和接口应该总是在一个单独的文件中,特别是在这种情况下,要记录它们的用途(例如在属性上方的注释中)。

© www.soinside.com 2019 - 2024. All rights reserved.