📦 6.3 Dominando JSON e Groovy GPath
O JSON é o padrão de facto para APIs modernas. O REST-assured brilha ao validar estruturas JSON complexas usando expressões GPath, permitindo filtros e buscas profundas em milissegundos.
🏁 Cenário: Buscando um Usuário por ID
Vamos validar se o recurso retorna o objeto correto e se a estrutura do JSON está íntegra.
📄 src/test/java/…/api/UsuariosJsonTest.java
@Test
@DisplayName("Deve retornar um usuário específico via JSON")
void deveValidarUsuarioJson() {
given()
.queryParam("usuario.id", 1)
.accept("application/json")
.when()
.get("/usuarios/show")
.then()
.statusCode(200)
.contentType("application/json")
// ✅ Validação de objeto aninhado
}🏗️ Operações Avançadas com GPath
E se a API retornar uma lista e você quiser validar se existe um e-mail específico?
.then()
.body("list.usuario.findAll { it.id < 5 }.nome", hasItems("Maurício", "Guilherme"));O que é o 'it'? ⚙️
O
ité uma palavra reservada do Groovy que representa o “item atual” da iteração. O REST-assured permite usar lógica programática dentro das suas asserções de corpo!
📊 Hierarquia de Acesso JSON
mindmap root((JSON)) Atributos Simples nome: String id: Integer Coleções lances: List Iteração via find e findAll Metadados Status Code Content-Type
Dica de Ouro ⚡
Para depurar o que está acontecendo na rede, adicione
.log().all()após ogiven()outhen(). O REST-assured imprimirá no console toda a requisição e a resposta completa (Headers + Body). 🚀 🏁