Лучшая практика для общения с базой данных - POST или GET? - PullRequest
0 голосов
/ 25 декабря 2011

Например, я хочу искать / вставлять / получать / удалять данные из базы данных, и я работаю с сервисом wcf RESTful. У меня есть один метод для получения данных из таблицы, один метод для поиска в таблице, один метод для вставки данных в таблицу и один метод для удаления данных из таблицы.

Я знаю, что каждый из этих методов может быть POST или GET.

Но что умнее? Какова лучшая практика?

Мое мнение таково, что поиск и метод get должны быть GET. Вставка и метод DELETE должны быть POST.

Я прав?

Ответы [ 3 ]

3 голосов
/ 25 декабря 2011

Вы правы. Особенность GET заключается в том, что он должен быть идемпотентным, так как клиент (браузер) может отправлять повторные GET в любое время. Однако POST может быть отправлен только один раз (согласно правилам).

Так что все, что что-то меняет, может быть POST. Строго говоря, удаление также может быть GET, поскольку повторная отправка GET не повредит удалению, но в целом лучше, если вы уважаете дух протокола HTTP. Подробнее см. HTTP RFC 2616 .

1 голос
/ 25 декабря 2011

В вики есть хороший обзор HTTP-глаголов и их использования.

На вашем месте я бы использовал:

GET для операций поиска и получения (поскольку они не изменят данные; эти операции можно вызывать несколько раз)

POST для операции вставки

DELETE для операции удаления

(IIS не имеет проблем с глаголом DELETE.)

1 голос
/ 25 декабря 2011

Да, это соглашение.

Используйте POST для операций, которые изменяют данные или состояние системы.Используйте GET для запросов, которые ничего не меняют.

Rails , например, расширяет это, также используя PUT и DELETE, но это не поддерживается большинством веб-серверов (поэтому есть обходной путьдля этого).

Ссылки:

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