Обновите данные модели, используя PUT - PullRequest
0 голосов
/ 04 августа 2011

У меня есть пользовательская модель, я предоставляю RESTful API, чтобы клиент мог позвонить, чтобы обновить необходимые данные для данного пользователя. Ниже приведен код, а также команда curl, которую я использовал для обновления пользовательских данных, но она все равно не сработала. Что-то не так с моим кодом / командой?

И у меня есть следующие настройки маршрута

PUT     /user/{<\d+>id}/?                       Users.update

// Updates a single user.
public static void update(Long id) {
    // Fetch from user from DB
    User user = safeFindById(id);

    // Set new values
    user.edit("user", params.all());

    // Persist user
    user.validateAndSave();

    // return the user rendered based on template
    get(id);
}

Использование Curl - добавить нового пользователя

$ curl d '{"email":"admin@foo.com","password":"secret","firstname":"who","lastname":"is"}' -X POST http://localhost:9001/user/add

Чтобы обновить пользователя, обе команды ниже не работали

$ curl -H "Accept: application/json" -X PUT -d "firstname=test" http://localhost:9001/user/1

$ curl -H "Accept: application/json" -H "X-HTTP-Method-Override: PUT" -X POST -d "firstname=test" http://localhost:9001/user/1

1 Ответ

0 голосов
/ 05 августа 2011

Ну без полного маршрута и исключения сложно проанализировать проблему.Кроме того, я не могу знать, как, если ваш пользовательский объект действительно имеет имя, а не имя.Я бы рекомендовал изменить метод:

public static void update(Long id, String firstname) {
    Logger.error(firstname);
    ....
}

, чтобы вы могли проверить, была ли ошибка в запросе.

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