Recebendo JSON via REST, mas não grava
12/10/2017 23:48
Olá,
Ao receber um JSON via REST, obtenho os dados corretamente, porém não grava no banco...
--------------------------------------------------------
incluo no UrlMappings.groovy:
"/iot/sensor"(controller: "iot", action: "sensor")
--------------------------------------------------------
no meu controller iotController.groovy:
def sensor(){
def dadosIot = request.JSON
if(dadosIot){
def sensorIot = new Iot(dadosIot)
// sensorIot.save flush:true
// save(sensorIot)
// iotService.save(sensorIot) ?// grails 3.3.1
render "Salvo: id: $sensorIot.id - $sensorIot.sensor - Temp: $sensorIot.temp"
}
else{
respond iotService.list(params), model:[iotCount: iotService.count()]
}
--------------------------------------------------------
Como teste uso o curl para fazer um Post enviando o JSON para o servidor (no Windows):
c:\> curl -X POST -H "Content-Type:application/json" -d "{\"id\":101,\"sensor\":1111,\"temp\":26.4}" http://localhost:8080/iot/sensor
--------------------------------------------------------
No meu controller / sensor() recebo corretamente em dadosIot o JSON enviado pelo curl e o objeto sensorIot recebe os atributos de dadosIot,
inclusive no render ele retorna ao curl no terminal a string resultado:
"Salvo: id: $sensorIot.id - $sensorIot.sensor - Temp: $sensorIot.temp",
porém nenhuma das linhas de save comentadas acima funciona. Os dados não são gravados no banco.
ALLguém pode me dar uma luz ?
Obrigado,
Everton Sales
Tags:
Grails, JSON, REST, curl