Отправка JSON с curl в Grails JSON REST API плагин - PullRequest
0 голосов
/ 15 августа 2011

У меня приложение Grails, работающее на 1.3.7 с установленным плагином json-rest-api версии 1.0.8.Я пытаюсь отправить данные из командной строки, используя curl, чтобы создать новый экземпляр класса домена, но, похоже, не могу найти правильный способ форматирования JSON, чтобы синтаксический анализатор был удовлетворен.Я также не могу найти никакой документации, которая бы окончательно описывала, как данные должны быть отформатированы.

Класс домена определяется следующим образом:

package foo

class Foo {
  static expose = 'foo'

  String name

  static constraints = {
    name(inList: ['xyzzy', 'quux'])
  }
}

Учитывая вышеизложенное, это нене работает:

$ curl -X POST --header "Content-Type: application/json" --data-urlencode '{"name":"xyzzy"}' http://myapp/api/foo

Приложение возвращает код ошибки 500 и содержание ответа составляет

{"success":false,"message":"Property [name] of class [class foo.Foo] cannot be null"}

Какие данные API ожидает от меня?

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

Попробуйте следующий формат:

{ data: { name: "Blabla" } }
0 голосов
/ 15 августа 2011

Это не относится к json-rest API.Я только когда-либо использовал встроенные возможности RESTful Grails.

Вам необходимо сопоставить URL-адрес, чтобы parseRequest = true.Вы должны включить класс в свой JSON:

{"class":"Foo", "name":"blabla"}

В своем контроллере вы делаете это ...

def fooInstance = new Foo(params['foo'])

И ваше золото.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...