gpt4 book ai didi

java - 具有相同RestEndPoint的两种不同方法:如何解决?

转载 作者:行者123 更新时间:2023-12-01 19:32:18 25 4
gpt4 key购买 nike

我想知道是否根据每个方法RestEndPoint调用在控制器中映射到两个不同方法的相同PRODUCES

下面描述了我要的是什么?

@Controller
ContollerClass {

@GetMapping(value = "/v1/v2/{userID}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<byte[]> getUser( {

// Rest of code

}

@GetMapping(value = "/v1/v2/{userID}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ResponseEntity<byte[]> getBinUser( {

// Rest of code

}
}


如图所示,它有两种不同的方法用于 GET请求,并且完全相同的 Rest end point。唯一的区别是它们返回的 return type

现在,当任何http客户端调用此其余端点(可以是 browsercurlpostman等)时,如何区分将实际调用哪个端点?与 produces有什么关系吗?如果是这样,客户端必须调用什么?是否需要提供 accept HTTP标头?

最佳答案

您可以根据某些参数来区分它们,例如你可以尝试像

@GetMapping(value = "/v1/v2/{userID}", produces = MediaType.APPLICATION_JSON_VALUE, params = "paramForGetUser")
public ResponseEntity<byte[]> getUser(@RequestParam String paramForGetUser){

// Rest of code

}

@GetMapping(value = "/v1/v2/{userID}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE, params = "paramForGetBinUser")
public ResponseEntity<byte[]> getBinUser(@RequestParam String paramForGetBinUser){

// Rest of code

}

关于java - 具有相同RestEndPoint的两种不同方法:如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59249620/

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