Почему Twitter отказался от использования DELETE в качестве метода запроса в своем API? - PullRequest
10 голосов
/ 12 января 2012

Twitter отказался от использования всех методов, которые используют DELETE в качестве метода запроса,

DELETE :user/lists/:id  

И теперь вместо этого использует POST в качестве метода запроса,

POST lists/destroy

Почему Twitterвообще перестали использовать DELETE в своем API и теперь используют только POST и GET для всех методов?

  • Это производительность?
  • Это безопасность?
  • Каковы преимущества построения API, который использует только POST и GET?

1 Ответ

7 голосов
/ 15 июня 2012

Я думаю, что были проблемы совместимости с некоторыми клиентами, которые могли выдавать DELETE запросы. Оглядываясь назад на документы для одного из устаревших вызовов, я обнаружил эту ошибку.

Примечание по использованию: клиенты, которые не могут выдать DELETE запросы, могут POST с добавленный параметр _method=DELETE

Итак, я чувствую (и предполагаю), что, поскольку глагол DELETE не был одинаково поддержан, он был удален во всей системе.


Обновление: Я отправил твит Тэйлору ( @ episod ) в Твиттере и спросил, что он думает по поводу вышеизложенного, и он отправил следующие ответы:

@ arcain [ответ] в значительной степени покрывает это; никакого неуважения к идиллическому ОТДЫХУ. DELETE по-прежнему обычно работает с этими методами, но мы исключаем из документов. [ ссылка ]

@ arcain, хотя большинство упомянутых там методов не устарели из-за метода HTTP так же, как из-за неуклюжих шаблонов URL. [ ссылка ]

Итак, удобство использования - наряду с совместимостью - похоже, были основными проблемами с устареванием.

...