Извиняюсь заранее, если ответ на старый пост - плохая форма для SO.
@ bobince
Меня не слишком беспокоит «соблюдение» REST в качестве абстрактного стандарта, но реальная проблема в том, что случайные, просачивающиеся, кэшируемые запросы GET могут случайно иметь побочные эффекты.
Существуют стратегии, которые вы можете использовать для уменьшения вероятности возникновения такого рода проблем, например, требовать, чтобы для каждого пользователя API и / или использовался одноразовый ключ подтверждения в качестве параметра, позволяющего выполнить действие. Если вы разрешаете доступ на запись к API через JSONP, вам все равно придется подумать об этом, чтобы предотвратить атаки XSRF.
Так что истинный RESTful невозможен в JSONP из-за отсутствия глаголов PUT, DELETE и POST. Однако многие API-интерфейсы JSONP по-прежнему разрешают запись. Я смутно припоминаю, что это возможно в API OAuth JSONP Facebook.
Несмотря на это, может показаться, что искусственный RESTful JSONP API может быть достигнут, если предположить, что на стороне сервера присутствуют оба "callback =" И "method =", а метод представляет собой GET, POST, DELETE или PUT тогда он будет обрабатываться так, как если бы это был настоящий запрос REST.
Это нарушает единый URL для единственной ресурсной парадигмы REST, поскольку обратный вызов будет меняться почти каждый раз, и даже если он останется постоянным, будет 4 представления URL, по одному для каждого метода. Поэтому мой вопрос заключается в том, каковы последствия этого разрыва с парадигмой RESTful, особенно в отношении ваших опасений по поводу «случайных, просачивающихся, кешируемых запросов GET» с потенциально «[случайными] побочными эффектами»?