我有一个用Kotlin编写的Spring Boot REST端点,例如:
@GetMapping(value="/transferDetails")
private fun transferAccountDetails(@RequestBody transferAcctDetails: TransferAccountDetails):results{
/** Hidden logic*/
return results(true,"Details Transferred Successfully")
}
//region Data View classes for HTTP response are defined here
data class TransferAccountDetails(val ownerKey: String, val counterPartyKey: String, val acctId: String)
上述端点所做的仅仅是从请求主体中获取参数,并对数据库进行一些更改,最终返回成功消息。
假设我无法更改用于此终结点的行为或请求类型(例如POST
或PathVariable
),并且上述脚本是最终的,并且已经过Postman的测试,并且可以正常工作。< / p>
在前端,我正在使用Angular并将请求发送到service
中的上述端点,如下所示:
processAccountDetailsUrl = 'http://.../api/transferDetails';
processAccountDetails(ownerKey: string, counterPartyKey: string, acctId: string) {
this.paramsDict = {
ownerKey: { ownerKey},
counterPartyKey: { counterPartyKey},
acctId: { acctId }
};
this.requestOptions = {
params: new HttpParams(this.paramsDict)
};
return this.http.get(this.processAccountDetailsUrl , this.requestOptions);
}
我收到以下错误400:
{
"timestamp": "2019-11-29T08:16:52.793+0000",
"status": 400,
"error": "Bad Request",
"message": "Required request body is missing: private final com.template.webserver.results..."
"path": "/api/transferAccountDetails"
}
不是requestOptions
向GET
请求添加请求正文的方法吗?如果是这样,我应该做些什么改变才能调用REST端点,它在哪里出错?假设我只能编辑前端,并且后端已经过测试,可以正常工作,并且不应该进行进一步的更改。
我尝试在TS文件中创建一个与data class TransferAccountDetails
具有相同变量的接口,并尝试像return this.http.get(this.processAccountDetailsUrl , this.theInterfaceObject);
那样解析它。这不起作用,因为它不是GET
请求的类型。
答案 0 :(得分:1)