Capa do Ebook gratuito Aprenda programar em Java completo, da lógica de programação ao avançado

Aprenda programar em Java completo, da lógica de programação ao avançado

5

(1)

238 páginas

Desenvolvendo APIs REST com Spring Boot: Tratamento de parâmetros de requisição

Capítulo 132

Tempo estimado de leitura: 5 minutos

Audio Icon

Ouça em áudio

0:00 / 0:00
Desenvolvendo APIs REST com Spring Boot: Tratamento de Parâmetros de Requisição

Desenvolvendo APIs REST com Spring Boot: Tratamento de Parâmetros de Requisição

Quando se trata de desenvolver APIs REST utilizando o Spring Boot, um dos aspectos mais importantes a dominar é o tratamento adequado dos parâmetros de requisição. Esses parâmetros são essenciais para a comunicação entre o cliente e o servidor, permitindo que os usuários forneçam informações que influenciam o comportamento da API.

Entendendo os Tipos de Parâmetros de Requisição

Existem diferentes tipos de parâmetros de requisição que podem ser utilizados em uma API REST:

  • Query Parameters: São incluídos na URL após o símbolo '?'. Eles são usados para filtrar recursos ou modificar a resposta de alguma forma. Exemplo: /users?age=25
  • Path Variables: São usados para identificar um recurso específico dentro de uma coleção de recursos. Eles são parte da URL. Exemplo: /users/{userId}
  • Request Body: Contém dados enviados em formato JSON ou XML que são utilizados para criar ou atualizar recursos.
  • Request Headers: Fornecem informações adicionais sobre a requisição, como tipo de conteúdo ou autenticação.

Tratando Query Parameters

No Spring Boot, os query parameters podem ser facilmente tratados com a anotação @RequestParam. Esta anotação pode ser usada para mapear parâmetros de consulta individuais para os parâmetros do método em um controlador. Por exemplo:

@GetMapping("/users")
public ResponseEntity<List<User>> getUsers(@RequestParam(value = "age", required = false) Integer age) {
    // Lógica para filtrar usuários pela idade
    return ResponseEntity.ok(userService.getUsersByAge(age));
}
    

Se o parâmetro 'age' não for fornecido, o valor será null e a API pode retornar todos os usuários. Se for fornecido, a API filtrará os usuários pela idade especificada.

Tratando Path Variables

Para tratar path variables, o Spring Boot utiliza a anotação @PathVariable. Isso permite que você extraia valores de partes variáveis da URL. Veja o exemplo abaixo:

Continue em nosso aplicativo

Você poderá ouvir o audiobook com a tela desligada, ganhar gratuitamente o certificado deste curso e ainda ter acesso a outros 5.000 cursos online gratuitos.

ou continue lendo abaixo...
Download App

Baixar o aplicativo

@GetMapping("/users/{userId}")
public ResponseEntity<User> getUserById(@PathVariable Long userId) {
    // Lógica para buscar um usuário pelo ID
    return ResponseEntity.ok(userService.getUserById(userId));
}
    

O valor de {userId} na URL é vinculado ao parâmetro userId do método.

Tratando Request Body

Para lidar com dados enviados no corpo da requisição, como JSON ou XML, usamos a anotação @RequestBody. Isso permite que o Spring Boot deserializa automaticamente o corpo da requisição para um objeto Java. Por exemplo:

@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User newUser) {
    // Lógica para criar um novo usuário
    return ResponseEntity.status(HttpStatus.CREATED).body(userService.createUser(newUser));
}
    

Aqui, o JSON enviado na requisição é convertido para um objeto User.

Tratando Request Headers

Headers de requisição podem ser tratados usando a anotação @RequestHeader. Isso é útil para extrair informações como tokens de autenticação ou tipos de conteúdo. Veja um exemplo:

@GetMapping("/users")
public ResponseEntity<List<User>> getUsers(@RequestHeader(value = "Authorization") String authToken) {
    // Lógica para autenticar o usuário com o token fornecido
    return ResponseEntity.ok(userService.getAuthenticatedUsers(authToken));
}
    

Este método extrai o valor do header 'Authorization' e o utiliza para autenticar o usuário antes de retornar a lista de usuários.

Validação de Parâmetros

Além de simplesmente tratar os parâmetros, muitas vezes é necessário validá-los. O Spring Boot suporta a integração com o Bean Validation API para validar parâmetros de requisição. Por exemplo:

@PostMapping("/users")
public ResponseEntity<User> createUser(@Valid @RequestBody User newUser) {
    // Lógica para criar um novo usuário
    return ResponseEntity.status(HttpStatus.CREATED).body(userService.createUser(newUser));
}
    

Aqui, o objeto User será validado contra as restrições definidas em suas anotações de validação (como @NotNull, @Size, etc.) antes de ser processado pelo método.

Conclusão

O tratamento adequado dos parâmetros de requisição é um aspecto fundamental no desenvolvimento de APIs REST com Spring Boot. Compreender como utilizar as anotações @RequestParam, @PathVariable, @RequestBody e @RequestHeader, bem como a validação de parâmetros, permite criar APIs robustas e flexíveis que podem atender às necessidades dos usuários de forma eficiente.

Agora responda o exercício sobre o conteúdo:

Qual das seguintes afirmações sobre o tratamento de parâmetros de requisição em APIs REST com Spring Boot está correta?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

A anotação @PathVariable é usada no Spring Boot para extrair valores dinâmicos da URL, mapeando essas partes variáveis diretamente aos parâmetros do método no controlador. Isso permite que os desenvolvedores manipulem recursos específicos de uma maneira eficaz, de acordo com a estrutura de rota da API REST.

Próximo capitúlo

Desenvolvendo APIs REST com Spring Boot: Criação de serviços e injeção de dependências

Arrow Right Icon
Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.