Проблемы с маршрутизацией для RESTful API - Rails - PullRequest
2 голосов
/ 25 апреля 2010

Я создаю API для веб-приложения, над которым я работал в течение некоторого времени. Я начал с модели User. Пользовательская часть API позволит удаленным клиентам: а) получать пользовательские данные, б) обновлять информацию о пользователях и в) создавать новых пользователей. Я получил все это на работу, но это не похоже на его настройку правильно. Вот мои вопросы:

  1. Должна ли конечная точка API быть пользователями или пользователями? Какая лучшая практика?
  2. Мне нужно добавить в конец действие, которое, как я ожидаю, будет выбрано типом запроса, поэтому мне не нужно указывать его явно. Как правильно настроить маршруты, чтобы не включать метод защищенных действий?

Позвольте привести несколько примеров:

Получить запрос на шоу - хотите, чтобы он работал без «шоу»

Поставить запрос на обновление - хотите, чтобы оно работало без "обновления"

Create - работает с или без 'create', что я и хочу для всех этих действий

  • curl -X post -F 'user [login] = mamafatta' -F 'user [email] =zzz@zzz.com' -F 'user [пароль] = 12345678' http://twye.local/api/users/

Как мне структурировать маршруты, чтобы не требовалось имя действия? Разве это не распространенный способ использования API RESTful?

Вот мой маршрут для API сейчас:

map.namespace :api do |route|
  route.resources :users
  route.resources :weight
end

Я использую успокоительную аутентификацию, которая обрабатывает http-аутентификацию в curl. Любое руководство по вопросам маршрутов и лучшая практика в отношении единственного и множественного числа было бы очень полезно.

Спасибо! -A

1 Ответ

1 голос
/ 02 апреля 2011
  1. Единственное и множественное число конечных точек для API-интерфейсов restful зависит от модели, которую вы возвращаете. Ваш URL должен описывать, что может быть несколько экземпляров ресурса 'users'.

  2. Ваши маршруты настроены правильно. Запросы GET и PUT должны включать в себя идентификатор пользователя в конечной точке, т. Е.

    curl -u rmbruno: бла http://app.local/api/users/1

См. В этом ответе обзор того, почему rails создает эти «удобные» URL для действий CRUD: Rails - Избыточные RESTFUL действия для map.resources? (новый, создать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...