gpt4 book ai didi

rest - 从错误的gson View 访问请求路径变量?

转载 作者:行者123 更新时间:2023-12-02 14:39:14 24 4
gpt4 key购买 nike

我有一个围绕这样的简单用户(grails)域类的RESTful API:

class User{
Long id
static constraints = {
}
}

我还为该用户构建了一个 Controller 类:
class UserController extends RestfulController {
static responseFormats = ['json', 'xml']

UserController() {
super(User)
}
}

Grails会为我生成所有“常规Crud端点”,这很好,但是我想用用户ID修改新的404错误,该ID可以作为路径变量(资源ID)找到,例如:
www.url/user/3

如果没有ID为3的用户,则我需要此json错误响应:
{"errorMessage":"user 3 not found"}

为此,我修改了404 gson View :

响应状态404
json {
message "User ${request.PATHVARIABLE} not found."
error 404
}

这部分起作用是因为显示了我的自定义json消息,但是我无法设法访问 View 上的path变量,我知道我可以访问请求,但找不到在该方法上返回path变量的有效方法请求(下面示例中显示的PATHVARIABLE方法只是示例,而不是实际方法)。

我可以通过gson错误 View 访问此ID吗?

更新:
在我看来,如果我尝试获取请求uri:
json {
uri request.uri
params params
message "User ${params.id} not found."
error 404
}

当我尝试获取/ user / 123不存在的用户时,这是我的响应:
{
"uri": "/error",
"params": {
"parameterMap": {},
"empty": true
},
"message": "User null not found.",
"error": 404
}

为什么请求uri是/ error而不是我原来的请求uri?

最佳答案

json View 将具有params对象,因此您可以执行以下操作:

json {
if (params.id) {
message "User ${params.id} not found."
} else {
message "Not found."
}
error 404
}

关于rest - 从错误的gson View 访问请求路径变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53321804/

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