Слипджиг упомянул это:
"Стек браузера работает, и в значительной степени автоматически, если вы готовы жить с другими его ограничениями (отсутствие поддержки всех HTTP-глаголов, приведение кодов состояния ответа и т. Д.)."
Если это приемлемо для вас, посмотрите, как сами Microsoft справляются с этим в некоторых своих API, используя настраиваемый заголовок X-HTTP-метода, например, как они это делают для WCF и OData:
http://www.odata.org/developers/protocols/operations
В MSDN Microsoft также упоминает об использовании REST в сочетании с API REST на основе WCF в SharePoint 2010:
msdn.microsoft.com / EN-US / библиотека / ff798339.aspx
"На практике многие брандмауэры и другие сетевые посредники блокируют глаголы HTTP, отличные от GET и POST. Чтобы обойти эту проблему, службы данных WCF (и стандарт OData) поддерживают метод, известный как" туннелирование глаголов ". В этом методе Запросы, PUT, DELETE и MERGE отправляются в виде запроса POST, а заголовок X-HTTP-метода указывает фактический глагол, который получатель должен применить к запросу. Для получения дополнительной информации см. X-HTTP-метод в MSDN и OData. : Операции (метод туннелирования через раздел POST) на веб-сайте OData. "
У Дона Бокса также было несколько слов об этом, но в частности о GData:
www.pluralsight-training.net / сообщества / блоги / dbox / Архив / 2007/01/16 / 45725.aspx
«Если бы я создавал клиент GData, я искренне удивлялся, почему я вообще потрудился бы использовать методы DELETE и PUT, учитывая, что X-HTTP-Method-Override будет работать в большем количестве случаев / развертываний».
Существует статья о взаимодействии Silverlight и Java, которая также устраняет это ограничение Silverlight, давая тот же совет:
www.infoq.com / статьи / Silverlight-ява-Interop
"Silverlight поддерживает только методы HTTP GET и POST. Некоторые брандмауэры ограничивают использование HTTP-методов PUT и DELETE.
Важно отметить, что настоящая служба RESTful может быть создана (в соответствии со всеми перечисленными выше принципами REST) только с использованием методов HTTP GET и POST, иными словами, архитектура REST не требует специального сопоставления с HTTP. Заголовок GData X-Http-Method-Override от Google является примером такого подхода.
Следующие переопределения методов HTTP могут быть установлены в заголовке для выполнения действий PUT и DELETE, если веб-службы интерпретируют заголовок X-HTTP-Method-Override на POST:
* X-HTTP-Method-Override: PUT
* X-HTTP-Method-Override: DELETE"
Надеюсь, это поможет
-Josh