ResponseEntity类我可以自己定义吗,如何定义呢
时间: 2024-04-10 16:28:21 浏览: 119
是的,你可以自己定义一个类来封装返回结果,而不是直接使用`ResponseEntity`类。以下是一个示例:
```java
public class ApiResponse<T> {
private int status; // 状态码
private String message; // 返回消息
private T data; // 返回数据
// 构造方法
public ApiResponse(int status, String message, T data) {
this.status = status;
this.message = message;
this.data = data;
}
// 省略getter和setter方法
}
```
在上述示例中,`ApiResponse`类泛型参数`T`表示返回数据的类型。你可以根据实际情况将其替换为你期望的数据类型,例如`ApiResponse<User>`表示返回一个`User`对象。
然后,在Controller中使用`ApiResponse`类来封装返回结果:
```java
@RestController
@RequestMapping("/api")
public class ThirdPartyApiController {
@GetMapping("/data")
public ApiResponse<Object> getDataFromThirdPartyApi() {
RestTemplate restTemplate = new RestTemplate();
String apiUrl = "http://third-party-api.com/data"; // 第三方API的URL
// 发送HTTP请求调用第三方API
Object response = restTemplate.getForObject(apiUrl, Object.class);
// 封装返回结果并以JSON格式返回给前端
return new ApiResponse<>(200, "Success", response);
}
}
```
在上述示例中,通过创建一个`ApiResponse`对象来封装返回结果,并将其作为方法的返回值。这样,在调用`getDataFromThirdPartyApi()`方法时,将会返回一个包含状态码、消息和数据的JSON对象。
请注意,上述示例仅为演示如何自定义封装返回结果的类,你可以根据实际需求进行更改和扩展。
阅读全文