【问题标题】:debug not working for rest method PUT using postman rest client使用邮递员休息客户端调试休息方法PUT不起作用
【发布时间】:2018-06-21 15:54:45
【问题描述】:

我有两个 Uri

发布:http://localhost:8080/applications/2851/involved-parties/1/contacts
输入:http://localhost:8080/applications/2851/involved-parties/1/contacts

我正在尝试调试方法,我在启动时为这两种方法添加了断点, 以调试模式启动服务器。在使用发送 json 请求时 POST 方法光标的邮递员休息客户端在断点处停止 POST 方法。但是对 PUT 方法的相同请求对您不起作用 光标不会在断点处阻止您,而是直接给出响应 回客户端。

@RequestMapping(value = "/applications/{applicationReferenceNumber}/involved-parties/{id}/contacts", method = RequestMethod.PUT)
@ResponseBody
public PutApplicationsResponse putContacts(@Valid @RequestBody final PutApplicationsRequest req,
        final BindingResult bind, @PathVariable(value = "applicationReferenceNumber") final Long arn,
        @PathVariable(value = "id") final Integer id, @RequestHeader final HttpHeaders httpHeaders,
        final HttpServletRequest reqHTTP) throws ContactsException, SQLException, MethodArgumentNotValidException,
                HttpMessageNotReadableException {

    reqHTTP.setAttribute(ExceptionConstants.ARN, arn);
    reqHTTP.setAttribute(ExceptionConstants.id, id);
    objMp = new ObjectMapper();

    if (bind.hasErrors()) {
        throw new MethodArgumentNotValidException(null, bind);
    }

仅供参考:我正在测试两种方法的负面情况,例如id 的长度是 4,如果我传递了 5 的 id 长度,那么它必须返回异常

问候,

【问题讨论】:

  • 是的,我在postman中选择方法
  • 请显示PUT方法的服务器端代码

标签: java rest spring-mvc debugging postman


【解决方案1】:

通常对于更新的 PUT 请求,应该知道特定的资源 URI。假设客户提出请求:

http://blah.com/applications/{applicationReferenceNumber}/involved-parties/{id}/contacts

我们的服务将查找传递的 id。如果找不到,我们返回 404 状态码,因为资源不存在。如果确实存在,那么我们会更新请求中提供的应用程序 ID 的联系人。如果您想创建一个不知道 URI 的联系人,那么 POST 将是正确的,您可以将应用程序 ID 表示发送到:

http://blah.com/applications/{applicationReferenceNumber}/involved-parties/{id}/contacts

所以基本上如果资源可用并且我们正在执行 put 操作,它将直接在服务器上更新,而且它是幂等的,所以每次你触发 PUT 请求时它不会做任何其他更改,因为 POST 每次都会创建新资源并且因此它会一直遍历代码。

【讨论】:

  • 这是正确的资源可用,我希望它通过 PUT 方法更新,但问题是为什么我不能像 POST 那样调试 PUT 方法
【解决方案2】:

在 Postman 中,您可能需要通过 POST 发送数据,然后添加 _method 字段作为请求的一部分。

_method:put

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 1970-01-01
    • 2017-09-06
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多