5
respostas

[Dúvida] Não consegui adicionar na lista usando o POST

No exemplo do curso Kotlin Spring Boot. Não consegui adicionar um elemento na lista List Utilizando o método plus

5 respostas

Oi!

Pode mandar como ficou seu código?

package com.bank.acesso.model

data class Usuario (
    val id: Long,
    val name: String,
    val email: String
)

package com.bank.acesso.controller

import com.bank.acesso.model.Usuario
import com.bank.acesso.service.UsuarioService
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RestController
@RequestMapping("usuario")
class UsuarioController (private val service : UsuarioService) {
    @GetMapping
    fun listarUsuario() : List<Usuario> {
        return service.listar()
    }
    @PostMapping
    fun cadastrar (@RequestBody usuario :Usuario) {
        service.cadastrar(usuario)
    }
}
---------------------------------------------------
package com.bank.acesso.service

import com.bank.acesso.model.Usuario
import org.springframework.stereotype.Service
import kotlin.collections.List

@Service
class UsuarioService (private var usuarios: List<Usuario> = ArrayList()){
    fun listar(): List<Usuario> {
        return usuarios
    }

    fun cadastrar ( usuario : Usuario ) {
        usuarios.plus(usuario)
    }

}

O código está certinho. Qual o problema que ocorreu?

Então, coloquei uns println antes e depois do metodo cadastrar e não aparece nada só '[]' Quando insiro e mando listar também só aparece '[]' Uso o Postman e mesmo no browers é a mesma coisa.

Coloca um System.out no objeto que chega no controller:

@PostMapping
fun cadastrar (@RequestBody usuario :Usuario) {
    System.out.println("Dados recebidos no Controller: " +usuario)
    service.cadastrar(usuario)
}