Хорошо, поэтому лучшим заголовком здесь, возможно, было бы «Прогрессивное улучшение с REST в CakePHP», но, по крайней мере, теперь я буду знать, что вы не читали вопрос, если ваш ответ просто относится к разнице между ними;)
Я довольно хорошо знаком с REST и с тем, как интегрировать его с CakePHP, но я не на 100% согласен с тем, как поддерживать нормально функционирующий веб-сайт. Использование Router::mapResources кажется отличной идеей, но это создает проблему с поддержкой «изящной деградации» версии сайта, потому что запросы POST к /resource/ И запросы GET к /resource/add будут направляться к одному и тому же действию. (добавлять). Очевидно, я хочу, чтобы это действие возвращало объект JSON, если они используют REST API, но если они используют деградированную версию сайта (возможно, без JS), это должна быть форма добавления, верно?
Как лучше с этим справиться. Направляете ли вы свои REST-запросы к другим именам действий, используя Router::resourceMap()? Вы делаете тот сумасшедший хак, который я видел, чтобы иметь часть префикса /api/ в resourceMap, чтобы вы могли использовать функции api_action? У вас есть действия, обрабатывающие как REST, так и обычные запросы с помощью проверки isAjax()? Если да, то как убедиться, что браузер правильно поддерживает два других типа запросов?
Я немного поискал, но ничего не нашел о том, как сделать обычные запросы доступными в Cake вместе с REST, поэтому, если у кого-то есть какие-либо советы или опыт, я буду рад их услышать!