返回HTTP代码200从春天REST API

彼得Penzov:

我想利用这个代码,以接收与价值观http链接:

@PostMapping(value = "/v1/notification")
public String handleNotifications(@RequestParam("notification") String itemid) {
    // parse here the values
    return "result successful result";
}

我怎样才能返回HTTP代码200-成功响应?

也例如,如果有一个异常的代码转换成代码处理我怎么能返回错误404

lealceldeiro:

您可以通过注释你的方法去做@ResponseStatus使用HttpStatus.OK(但它应该是200默认值),就像这样:

有些控制器

@PostMapping(value = "/v1/notification")
@ResponseStatus(HttpStatus.OK)
public String handleNotifications(@RequestParam("notification") String itemid) throws MyException {
    if(someCondition) {
       throw new MyException("some message");
    }
    // parse here the values
    return "result successful result";
}

现在,为了回报处理,您可以创建这样一个完整而独立的控制器,一个特定的异常时的自定义代码(你可以做到这一点在同一个控制器,虽然)从延伸ResponseEntityExceptionHandler,并标注有@RestControllerAdvice且必须有一个方法处理该特定的异常如下所示:

异常处理控制器

@RestControllerAdvice
public class ExceptionHandlerController extends ResponseEntityExceptionHandler {

    @ExceptionHandler(MyException.class)
    protected ResponseEntity<Object> handleMyException(MyException ex, WebRequest req) {
        Object resBody = "some message";
        return handleExceptionInternal(ex, resBody, new HttpHeaders(), HttpStatus.NOT_FOUND, req);
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

春天引导战争或罐子REST API项目

如何设置和春天有个REST的API

春天REST API登记日期转换器POJO

春天 - 重试要求,如果服务返回409 HTTP代码

Spring Test在Spring Boot中测试Rest API时返回404而不是200

REST API设计的GET方法中的HTTP状态代码

Spring Rest API的返回列表

从Web Api控制器返回HTTP状态代码

REST API服务针对验证失败返回什么合适的HTTP状态代码?

在REST API中返回错误的HTTP方法的代码?

图像大小超出限制时,REST API返回的HTTP状态代码

python拥抱api返回自定义http代码

Confluence REST API:带空响应的HTTP 200

REST API服务针对过期实体返回的适当HTTP状态代码是什么?

Laravel验证总是从API返回200 OK

如何使用Serverless + OpenWhisk和IBM Cloud API Gateway后面返回非200 HTTP状态代码?

Stackdriver Logging API返回响应代码200,但响应为空

QnA Api返回响应代码200 OK,无论KB中没有匹配项

Flutter http Package POST API调用返回302而不是200,DB中的发布成功

Django REST API更新视图返回http 405

Google Map api“路线”返回的HTTP响应代码:400

api中的HTTP Post Rest变量返回0

Laravel REST API调用返回状态为200的伪数据

从rest api返回数据

REST API 的响应是否应该包含 HTTP 结果代码?

Express - GET API 总是返回 200

正确的 REST API 响应 HTTP 状态代码

Angular,有没有办法返回一个不同于 200 的 HTTP 状态代码,但只能在 API 调用响应之后?

如果在 Rest Api 调用中没有从数据库中找到数据,则返回哪个 HTTP 状态代码