gpt4 book ai didi

java - 如何在现有 API 之上设计轻量​​级 REST API

转载 作者:行者123 更新时间:2023-11-30 05:57:59 27 4
gpt4 key购买 nike

我有一个 GET API,它返回一个包含 15 个属性的对象(如果要返回所有属性,则返回大量响应)。我需要设计另一个具有完全相同签名的 API,但只需要返回这 15 个属性中的 6 个(轻量级 API)

我想以这样的方式实现这个 API:它使用大部分现有的实现,但只添加一点逻辑来传递所需的轻量级属性,而不是全部。我可以使用框架或推荐模式来执行此操作吗?实现是在基于 JAVA/Spring Boot 的 REST API 中

最佳答案

你可以看看 jackson 的观点

这意味着定义两个 View ,一个用于具有 15 个字段的响应,另一个用于具有 6 个字段的响应。

public class Views {

// only 6 attributes
public static class Standard { }
// all 15 attributes - note the extends
public static class Full extends Standard { }

}

然后,在响应类属性上添加 @JsonView 注释。

public class Response {

// will be visible only in Standard view
@JsonView(Views.Standard.class)
private Object attribute1;
// will be visible in both Standard and Full views
@JsonView(Views.Full.class)
private Object attrbiute2;

}

在 API 级别,您可以定义两个端点,一个用于标准架构,一个用于完整架构。

@JsonView(Views.Stadard.class)
@GetMapping("/standard")
public Response getStandard() {
// ...
}

@JsonView(Views.Full.class)
@GetMapping("/full")
public Response getFull() {
// ...
}

根据您的客户端调用的端点,Jackson 将相应地序列化响应。

从重用的角度来看,这很有吸引力,因为它只会影响您的实体和 Web 层(并且只需添加一些注释),从而允许您完全重用当前的逻辑。

Tutorial

关于java - 如何在现有 API 之上设计轻量​​级 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52827756/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com