1
resposta

[Dúvida] Como esconder as pastas da nossa URL?

Uma coisa que venho me questinando e não sei se é possivel se temos como esconder ou camuflar a nossa query da URL por exemplo:

https://cursos.alura.com.br/forum/curso-java-consumindo-api-gravando-arquivos-lidando-erros/exercicio-refinando-a-busca-por-filmes/126732/novo

será que é possível deixar apenas aparente para o usuário no navegador dessa forma?

https://cursos.alura.com.br/forum/curso-java-consumindo-api-gravando-arquivos-lidando-erros
1 resposta

Oi, boa noite! Geralmente isso pode ser feito via servidor web como o Apache, mas você pode fazer via código também(só não sei se isso ficaria dentro das boas práticas). É só você criar um novo método no controller que vai ter a url mais amigável e redirecionar ele para o método que tem a url mais complexa, exemplo:

@RestController
@RequestMapping("/abrigos")
public class AbrigoController {

    @Autowired
    private AbrigoService abrigoService;

    @Autowired
    private PetService petService;

    @GetMapping("/listar/nomeextensomuitocomplicadonadaamigavel
    public ResponseEntity<List<AbrigoDto>> listar() {
        List<AbrigoDto> abrigos = abrigoService.listar();
        return ResponseEntity.ok(abrigos);
    }
.
.
.
.
.
  @GetMapping("/listar")
    public ResponseEntity<List<AbrigoDto>> listaComUrlAmigavel() {
         return listar();
    }

}

Aí lá no front você vai chamar o endpoint /abrigos/listar, e aí o método listaComUrlAmigavel() desse endpoint chamaria o método listar() do endpoint com nome /listar/nomeextensomuitocomplicadonadaamigavel.

sacou?

Mas será que não seria melhor eu refatorar o nome do método para um nome mais amigável ao invés de ter que escrever outro método que vai ter a função só de redirecionar? Minha intuição diz que isso cheira a bad smell. Na minha opinião, ou é melhor refatorar o nome da url pra um nome que sigam as boas práticas(artigo logo abaixo) do que ter que fazer o método listarComUrlAmigavel(). Ou então fazer isso via o servidor que está hospedando a aplicação.

Por último, ressalto este artigo que explica as boas práticas para nomear uma URI de acordo com padrão REST. Depois dá uma lida nele: https://medium.com/living-tech/boas-pr%C3%A1ticas-de-nomenclatura-para-rest-apis-9fc27e2c97d2