Какая операция REST (GET, PUT или POST) для проверки информации?
Мои пользователи вводят несколько информационных полей в приложении iOS.
Эта информация должна быть проверена на моем сервере, у которой есть RESTful API.
После проверки пользовательский интерфейс приложения iOS изменится, чтобы указать результат.
Ни GET, PUT, ни POST не подходят, потому что я не получаю ресурс, и ни один из них не создан или не обновлен.
Какая наилучшая подходящая операция REST для реализации этой проверки?
Ответы
Ответ 1
Мои пользователи вводят несколько информационных полей в приложении iOS. Эта информация должен быть проверен на моем сервере, который имеет RESTful API. После проверка соответствия пользовательского интерфейса приложения iOS для указания результата.... Я не получая ресурс, и ни один из них не создан или не обновлен.
Поскольку вы ничего не сохраняете (не изменяя какой-либо ресурс), я думаю, что это технически больше RPC, чем RESTful для меня.
Следующее - мое мнение, поэтому не принимайте это как Евангелие:
Если информация просто отправляется, и вы говорите "да" или "нет", и вы не сохраняете ее, я бы сказал, что POST
в порядке..
Если информация действительно была сохранена/обновлена , выбор подходящего метода HTTP будет гораздо более актуальным.
POST = CREATE / SUBMIT (in an RPC context)
PUT = UPDATE (or CREATE if there is nothing to UPDATE)
Ответ 2
Я использую тот же сценарий, что и вы, и использую PUT для него. Вы должны спросить себя: "Когда я отправляю один и тот же запрос дважды, это делает другое состояние на сервере?" Если да, используйте POST, если не использовать PUT.
Ответ 3
Я рекомендую использовать ValidationResource
и два запроса. Каждый экземпляр этого ресурса представляет собой проверку набора данных. Рабочий процесс:
1. Создайте новый ValidationResource
- Запрос:
POST /path/to/validations
- данные для проверки как тела
- Ответ:
201 Created
-
Location: /path/to/validations/<unique-id-of-this-validation>
2. Результат поиска
- Запрос:
GET /path/to/validations/<unique-id-of-this-validation>
- Ответ:
200 OK
- body:
{'valid': true}
или {'valid': false}
Это подход RESTful, в котором проверка является ресурсом с состоянием сервера.