如何在“确保放心”中使用其ID删除特定参数?

时间:2018-09-24 13:25:04

标签: json rest-assured

下面是json响应

{
  "details": [
    {
      "UserName": "john",
      "id": "abc_123",
      "LastName": "smith"
    }
  ]
}

我只需要删除UserName参数:

request.delete("http://localhost:8080/details/id/UserName");

上面的代码似乎不起作用,我的期望如下所示

{
  "details": [
    {
      "id": "abc_123",
      "LastName": "smith"
    }
  ]
}

1 个答案:

答案 0 :(得分:0)

在发布关于SO的问题之前,请检查Minimal, Complete, and Verifiable example,有很多人可以帮助您,但我们需要事先了解您的尝试。

要回答您的问题,应使用 PUT ,而不要使用 Delete ,因为您正在尝试更新有效负载。顾名思义,删除将删除整个资源

检查此link以获得更多详细信息

PUT调用是特定于资源的,因此您必须提及哪个实体应受到影响。

我根据您提供的详细信息提供了一个示例代码

在此处使用了 HashMap ,但是您也可以像这样发布正文或使用 POJO JSONObject

{

    Map < String, Object > map = new HashMap < > ();
    map.put("details", Arrays.asList(new HashMap < String, Object > () {
        {
            put("id", "abc_123");
            put("LastName", "smith");
        }
    }));

    RequestSpecification req = RestAssured.given();
    req.header("Content-Type", "application/json");
    req.body(map).when();
    Response resp = req.put("http://localhost:8080/details/id/abc_123");

    String body = resp.asString();
    System.out.println("Response is : " + body);
}