Rails 4 представила PATCH
запросы как метод запроса по умолчанию при выполнении (общих) частичных обновлений объектов. Это соответствует стандартам HTTP, и хороший (более старый) пост, обсуждающий это решение, можно найти здесь:
http://weblog.rubyonrails.org/2012/2/25/edge-rails-patch-is-the-new-primary-http-method-for-updates/
Когда вы определяете ресурс в config/routes.rb
, например
resources :books
то по умолчанию в рельсах создаются следующие маршруты:
GET /books books#index
GET /books/:id books#show
POST /books books#create
DELETE /books/:id books#destroy
PATCH /books/:id books#update
PUT /books/:id books#update
Поскольку я разрабатываю новое приложение и не нуждаюсь в обратной совместимости, я хотел бы удалить устаревший маршрут PUT
.
Есть ли простой способ выполнить это в config/routes.rb
?
Объяснение, почему этот трафик PUT
меня беспокоит: Я использую драгоценный камень swagger-docs для автоматического создания документация для моего API. Из-за описанного поведения у меня всегда есть два определения конечных точек для запросов на обновление (PUT
и PATCH
) для каждого ресурса. Плюс, поскольку это потенциально опасный маршрут, я бы хотел, чтобы мой API не поддерживал его с сегодняшнего дня.
ОБНОВЛЕНИЕ из-за первого ответа заголовка в неправильном направлении, я хотел бы уточнить: я не хочу удалять действие 'update', но только устаревший маршрут PUT при сохранении маршрута PATCH.