Ir ao conteúdo
  • Cadastre-se

HTML Uso API REST Spring boot, usando CRUD GET para retornar lista de objetos


Posts recomendados

Galera, estou tendo problema em realizar uma consulta. Tenho meu banco de dados montado, a ideia é vários animais , com seu nome, espécie e tipo.  Consegui fazer o uso do GET normal para solicitar o nome, id dele, porém eram consultas que retornavam somente um objeto do meu repositório, ex: //localhost:8081/names/nomeObjeto, mas agora preciso retornar uma lista de todos os animais da mesma espécie , e também uma lista com os animais do mesmo tipo essa consulta tenho que encontrar com uma subString, Por  ex, o valor  “Veneno” for the {type} deve retornar animais  com o tipo "cobra/Veneno". 

 

Vou inserir meu cód- esse é um exemplo que deu certo e retorna os animais com id que eu solicitar na url : localhost:8081/animals/1 

@RequestMapping(value="/animals/{id}", method=RequestMethod.GET)
    public ResponseEntity<?> getId(@PathVariable(name = "id") int id) {
        Optional<Animal> o = repository.findById(id);

        if (!o.isPresent())
            return new ResponseEntity<>(o, HttpStatus.NOT_FOUND);

        return new ResponseEntity<>(o, HttpStatus.FOUND);
    }

 

Esse retorna a lista com todos os animais e seus atributos

 @RequestMapping(value="/animals", method=RequestMethod.GET)
    public ResponseEntity<?> all() {
        List<Animal> l = repository.findAll();

        if (l.isEmpty())
            return new ResponseEntity<>(l, HttpStatus.NOT_FOUND);

        return new ResponseEntity<>(l, HttpStatus.FOUND);
    }

 

 

 

// e aqui que preciso de orientação, preciso retornar todos animais da mesma espécie, mas só dá erro, na minha lógica o contains resolve, a consulta na url coloquei localhost:8081/animals/species/p e localhost:8081/animals/species/especieDoAnimal e não deu.

 

@RequestMapping(value="/animals/species/{species}", method=RequestMethod.GET)
    public ResponseEntity<?> getSpecies(@PathVariable(name = "species") String species) {
      
      List<Animal> p = repository.findAll();

      if (species == null)
        repository.findAll().forEach(p::contains);
      else
        repository.findByTitleContaining(species).forEach(p::contains);

      if (p.isEmpty()) {
        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
      }

      return new ResponseEntity<>(p, HttpStatus.OK);
    }

 

 

Confesso é a primeira vez usando uma API REST  e travei .

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...