📦 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 o given() ou then(). O REST-assured imprimirá no console toda a requisição e a resposta completa (Headers + Body). 🚀 🏁


⬅️ Capítulo Anterior | Próximo Capítulo ➡️