如何创建一个简单的JSON模板与restassured发送主体数据?

问题描述 投票:0回答:1

所以我想建立一个JSON数据发送到我的restassured请求的主体,喜欢这里这种结构:

{
  "id": 1,
  "category": {
    "id": 1,
    "name": "duch"
  },
  "name": "benny",
  "photoUrls": [
    "string"
  ],
  "tags": [
    {
      "id": 0,
      "name": "string"
    }
  ],
  "status": "available"
}

因此,它是作为本作字符串复制到请求的主体,我做了这么简单,我不希望这样的。

有各种各样的架构,使这种结构和动态某种方式改变数据?我不希望这样的:(例如)

given().body("{\r\n\"city\": \"Hod Hasharon\",\r\n\"description\": \"Automation Hotel\",\r\n\"name\":\"Nir Great hotel\",\r\n\"rating\":5\r\n}")
                    .when().post("http://localhost:8090/example/v1/hotels").then().statusCode(201);

我想更灵活这里,引用一些类型的对象(与选项的模板来改变在一些地方的数据?)处理这个东西,是有这样的事情?

java json rest-assured rest-assured-jsonpath
1个回答
2
投票

我认为你需要使用POJO和杰克逊将其序列化到JSON什么。

public class Payload {

   private int id;
   private String name;
   private List<Tag> tags; //Tag is another class you need to create the same way

   //getters, setters
}

然后使用对象为您的要求有效载荷:

Payload payload = new Payload();
payload.setId(123);
payload.setName("John");

given().contentType("application/json").body(payload).when().post("http://example.com");

另外不要忘了jackson-databind依赖添加到您的项目。

还有更多的是在这里正式文件:https://github.com/rest-assured/rest-assured/wiki/Usage#object-mapping

© www.soinside.com 2019 - 2024. All rights reserved.