【发布时间】:2021-03-31 18:54:49
【问题描述】:
我的应用程序有一个 REST 接口,我必须自定义结果主体的呈现,以防控制器使用以下方法返回 ResponseEntity<>(NOT_FOUND) 作为控制器:
@Override
public ResponseEntity<ScimCoreUser> getUserById(String userid) {
Optional<ScimCoreUser> result = service.findUserByNumber(userid);
return result.map(user -> new ResponseEntity<>(user, HttpStatus.OK))
.orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND));
}
我无法更改方法的签名,因为我必须实现生成的接口。我知道我可以简单地抛出一个自定义异常并使用控制器建议处理这个异常。
有人知道如何接管ResponseEntity<>(HttpStatus.NOT_FOUND)) 的结果正文的呈现,以便我可以按照RFC 7644: System for Cross-domain Identity Management: Protocol 中定义的以下格式返回错误消息:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
"detail":"Resource 2819c223-7f76-453a-919d-413861904646 not found",
"status": "404"
}
【问题讨论】: