gpt4 book ai didi

java - Spring:只有一个元素的请求有效载荷

转载 作者:行者123 更新时间:2023-11-29 04:32:06 27 4
gpt4 key购买 nike

我想实现一个网络服务,它只使用请求负载中的一个命名参数。在 curl View 中,它应该是这样的:curl -X PATCH myurl.net/my_service -d "{mySingleParameter: 49}"

我正在尝试使用 Spring 来完成它,但我想知道要将此类有效负载映射到我的方法,我必须声明一个新类。喜欢:

...
public static class PayloadWithSingleParamMSP{
public Long mySingleParameter;
}

@RequestMapping(value = "my_service", method = RequestMethod.PATCH)
public String myService(@RequestBody PayloadWithSingleParamMSP payload){
Long valueWhichIReallyNeed = payload.mySingleParameter;
//do job
...
}
...

但是有没有办法直接获取我真正需要的值(mySingleParameter)?

最佳答案

你有几个选择:

    @RequestMapping(value = "my_service", method = RequestMethod.PATCH)
public String myService(@RequestBody ObjectNode payload){
Long valueWhichIReallyNeed = payload.get("mySingleParameter").asLong();
//do job
...
}

@RequestMapping(value = "my_service", method = RequestMethod.PATCH)
public String myService(@RequestBody Map<String, String> payload){
Long valueWhichIReallyNeed = Long.parseLong(payload.get("mySingleParameter"));
//do job
...
}

甚至

@RequestMapping(value = "my_service", method = RequestMethod.PATCH)
public String myService(@RequestBody Long mySingleParameter){
Long valueWhichIReallyNeed = mySingleParameter;
//do job
// ...
}

但在最后一种情况下,您的 curl 将如下所示:

curl -X PATCH myurl.net/my_service -d "49" 

在这个问题的答案中,您可以找到更多选项:Passing multiple variables in @RequestBody to a Spring MVC controller using Ajax

关于java - Spring:只有一个元素的请求有效载荷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43414878/

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