RequestParam busca pelo nome completo ou parte do nome recebido como parâmetro

2 respostas Resolvido
C

Programadores Boa tarde., preciso que me ajudem.

Se o parâmetro nome for completo, a rota retornará
apenas um usuário; se for apenas parte do nome=el%,
pode ser retornada uma lista de usuários ex(elton, eliane, elon) isso que deveria ser retornado.

class UserController
controller

class UserService
service

interface UserRepository
repository

class User

class UserDTO

postman

retorno

2 Respostas

V

Lembre-se que o % na rota é um valor especial, que permite vc indicar o código de um caracter especial a ser inserido (ex %20 para um espaço).

Se você quer realmente mandar o %, vc teria que usar %25:
http://localhost:8080/users/search?nome=el%25

V
Solucao aceita

Ele me perguntou no privado porque funcionou. Colando aqui a explicação detalhada para quem precisar:
O negócio é o seguinte. Toda URL tem algumas regrinhas de escrita (isso em inglês é chamado de encoding, que é a palavra para codificação). Elas servem para evitar que caracteres especiais (tais como a ?, &, = ou o %) não sejam se tornem ambíguos.

Por exemplo, digamos que você queria procurar por um nome como ben&jerry. Sem as regras, a url ficaria assim:

http://localhost:8080/users/search?nome=ben&jerry

Agora, você deve lembrar que o & serve para separar dois parâmetros. Então, como ele saberia que esse & é parte do nome, e não um separador para uma busca de uma segunda variável chamada Jerry?

As regras de codificação resolvem isso. Uma delas é que esses caracteres não podem ser usados diretamente. Eles precisam ser substituídos por um sinal de %, seguido do código do caracter. Então, ao invés de escrever ben&jerry, você escreve:
http://localhost:8080/users/search?nome=ben%26jerry

Sendo esse “%26” um comando de “use o caracter de código 26”, no caso o &.

Bem, mas como o % é justamente o caractere usado para representar outros caracteres, como representamos o %? Do mesmo jeito. Temos que usar o % seguido do código dele em questão.

Existem sites em que você pode colocar um texto e ele gera essa codificação para você. Um exemplo é esse aqui:

URL Encode

URL Encode and Decode - Online

Encode to URL-encoded format or decode from it with various advanced options. Our site has an easy to use online tool to convert your data.

Se eu entrar lá e colocar algo como
Vinícius%de Mendonça

Ele vai mostrar que a maneira correta de se colocar isso em uma URL é:
Vin%C3%ADcius%25de%20Mendon%C3%A7a

Criado 11 de julho de 2023
Ultima resposta 12 de jul. de 2023
Respostas 2
Participantes 2