1
resposta

Spring Boot API Rest - Aula 3 - Não consigo acessar o localhost:8080/topicos

Não consigo acessar o localhost:8080/topicos já tentei de tudo, ele apresenta da seguinte erro na pagina:

Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Jun 09 13:37:09 BRT 2022 There was an unexpected error (type=Not Found, status=404). No message available

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeSegue abaixo minha SpringApplication:

package br.com.alura.forum;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication public class ForumApplication {

public static void main(String[] args) {

    SpringApplication.run(ForumApplication.class, args);
}

}

Segue abaixo meu controller:

package br.com.alura.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;

import br.com.alura.controller.TopicoDto; import br.com.alura.forum.modelo.Topico; import br.com.alura.forum.repository.TopicoRepository;

@RestController public class TopicosController {

@Autowired
private TopicoRepository topicoRepository;

@RequestMapping("/topicos")
public List<TopicoDto> lista(String nomeCurso) {
    if (nomeCurso == null) {
    List<Topico> topicos = topicoRepository.findAll();
    return TopicoDto.converter(topicos);
}else {
    List<Topico> topicos = topicoRepository.findByCursoNome(nomeCurso);
    return TopicoDto.converter(topicos);
}

} }

e repository:

package br.com.alura.forum.repository;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;

import br.com.alura.forum.modelo.Topico;

public interface TopicoRepository extends JpaRepository<Topico, Long>{

List<Topico> findByCursoNome(String nomeCurso);

}

1 resposta

Olá, Gabriel, tudo bem?

De qual curso estamos falando? O erro "Whitelabel Error Page" com status 404 indica que a rota "/topicos" não está mapeada corretamente na sua aplicação Spring Boot.

Verifique se a anotação @RequestMapping("/topicos") está mapeada no seu controller TopicosController.

Outra possível causa do erro é a falta de configuração no arquivo application.properties ou application.yml para definir a porta em que a aplicação está sendo executada. Verifique se a porta 8080 está corretamente configurada.

Aqui está um exemplo de como a anotação @RequestMapping pode ser utilizada corretamente no seu caso:

@RestController
@RequestMapping("/topicos")
public class TopicosController {

    @Autowired
    private TopicoRepository topicoRepository;
    
    @GetMapping
    public List<TopicoDto> lista(String nomeCurso) {
        if (nomeCurso == null) {
            List<Topico> topicos = topicoRepository.findAll();
            return TopicoDto.converter(topicos);
        } else {
            List<Topico> topicos = topicoRepository.findByCursoNome(nomeCurso);
            return TopicoDto.converter(topicos);
        }
    }
}

Espero que essas sugestões possam ajudar a resolver o problema. Se persistir, verifique se todas as dependências necessárias estão corretamente configuradas no seu projeto.

Lembre-se de reiniciar a aplicação após fazer qualquer alteração no código.

Espero ter ajudado e bons estudos!