Получает ли восхитительное использование запросов на создание вместо поста, и почему я не должен сделать то же самое?

StackOverflow https://stackoverflow.com/questions/8802795

  •  25-10-2019
  •  | 
  •  

Вопрос

Я смотрю на Вкусный API и посмотрите следующую операцию по созданию новой закладки:

https://api.del.icio.us/v1/posts/add?&url={URL}&description={description}

Похоже, что они используют запрос GET для создания записей базы данных на стороне сервера, которые я прочитал в другом месте, не следует делать с помощью запросов GET, только с помощью запросов POST.

Я пишу свой собственный API прямо сейчас и думаю, что невероятно позволить пользователям взаимодействовать с API непосредственно из URL. Но вы не можете сделать это, если вы не позволите операциям CRUD, чтобы получить.

Итак, действительно ли вкусно делает CRUD, работая? Есть ли важная причина, по которой я не должен делать то же самое в своем API, или пост только что предназначен для того, чтобы Crud предотвращал случайный вызов?

Это было полезно?

Решение

Случайный призыв является частью этого; Вот что означает спецификация HTTP, когда она говорит о «идентифицирующих» методах. Но вы могли бы утверждать, что то, что делает Delicious, на самом деле идентифицирует, если URL -адрес добавляется только один раз, независимо от того, сколько раз вы получаете. Но что еще более важно, что Get Безопасно:

The important distinction here is that the user
did not request the side-effects, so therefore
cannot be held accountable for them.

С точки зрения дизайна интерфейса, вы хочу Пользовательские агенты, чтобы сделать пост, положить и удалять более сложные, чем получить, или, по крайней мере, явно различающиеся, чтобы пользователи могли полагаться на эту разницу, чтобы намекнуть, когда их действия могут вызвать изменение в состоянии ресурса, потому что они находятся отвечает за эти изменения. Использование для внесения изменений, даже если они идентифицируют, размывает эту линию подотчетности, особенно когда Предварительные префетчеры широко развернуты.

Другие советы

Это зависит от того, если вы следуете принципам остального, чтобы изменить ситуацию, запрещено. Поэтому большинство людей говорят, что с постом использования отдыха для изменений.

Однако есть разница между Get и Post. В соответствии с запросами на получение запросов RFC всегда есть последующий ответ. И если вы используете Post, вам нужно следовать зазору перенаправления и пост.

Другим ограничением является то, что URL -адреса могут иметь ограниченный размер. Так что Get Will Will работает только до тех пор, пока ваши входные данные достаточно короткие. Таким образом, вкусный API есть ошибка. Вы не сможете добавить каждый возможный URL с помощью параметра GET.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top