Estou começando a estudar Spring Boot, estava tentando retornar um json com alguns valores de uma requisição, porem pesquisando em alguns foruns, vi que nao consigo fazer isso, certo? (Se eu consigo, por favor me digam como), então estou tentando retornar um HashMap, porém nao estou tendo sucesso, estou adicionando dois valores, porem quando vou no postman, e faço a requisicao no link, ele me retorna somente o ultimo valor que coloque, o que estou fazendo de errado?
@GetMapping("/linguagens") @ResponseBody
public HashMap<String, Linguagem> linguagens(){
HashMap<String, Linguagem> linguagens = new HashMap<String, Linguagem>();
linguagens.put("linguagem", new Linguagem("Java", true));
linguagens.put("linguagem", new Linguagem("Python", false));
return linguagens;
}
obrigado pela resposta, mas quando utilizei essa anotacao deu esse mensagem de erro The annotation @RestController is disallowed for this location
ai utilizei as que estou usando e continuou a mesma coisa, pra que serve a @ResponseBody?
e porque nao consigo devolver logo um json como retorno?
estou começando agora com spring
A anotação RestController precisa ser na classe, mas usar a anotação ResponseBody no método também funciona. O problema no teu código é que HashMap não aceita chaves duplicadas, então você não pode adicionar duas linguagens com a chave “linguagem”, pois a segunda sobrescrever a primeira.
Se você quer só retornar uma lista de linguagens, coloca todas em um ArrayList e retorna List ao invés de Map.