在Spring Web应用程序中创建GET端点时,我将路径变量(用@PathVariable
注解)传递给我的API。
如果我没有在路径上传递任何值,控制器将返回HTTP 404状态。
*端点:http://localhost:8080/observability-core/v1/systems/
如果我传递一个值,它会按预期响应(例如http://localhost:8080/observability-core/v1/systems/123)
如果请求中缺少路径变量,我想抛出HTTP 400 Bad Request来表示没有传递。
PS:- * 当我用上面的URL点击请求时,我没有得到任何日志,这意味着没有请求到达应用程序。这可能意味着端点不存在,这是误导。在这种情况下,我如何自定义错误响应?*
Spring控制器端点的默认响应:
{
"timestamp": "2024-01-04T06:48:18.584+00:00",
"status": 404,
"error": "Not Found",
"path": "/observability-core/v1/systems/"
}
字符串
2条答案
按热度按时间vaqhlq811#
我建议的解决方案:
@GetMapping(value = { "/path", "/path/{param}" })
required = false
(@PathVariable(required = false) String param
极简示例
字符串
A测试用例:
型
xjreopfe2#
你可以通过遵循这种方法来完成它。
@RequestMapping(“/observability-core/v1/systems”)public class YourController {
字符串