Skip to content

Instantly share code, notes, and snippets.

@mib32
Last active August 29, 2015 14:23
Show Gist options
  • Save mib32/cdb0be76f88b8e675388 to your computer and use it in GitHub Desktop.
Save mib32/cdb0be76f88b8e675388 to your computer and use it in GitHub Desktop.
API

OkCity REST API

Регистрация

Метод запроса Путь
POST /users.json

####Соответствие полей

Поле Описание
user[name] Имя
user[email] Email
user[password] Пароль
user[phone] Телефон личный
user[public_role] Роль пользователя. Возможные значения - BusinessUser - владелец бизнеса (использовать если нужно создать и предприятие тоже) и nil либо User - обычный пользователь.
user[business_attributes[name]] Назв. организации
user[business_attributes[business_category_id]] Раздел бизнеса
user[business_attributes[business_sub_category_id]] Подраздел бизнеса
user[business_attributes[url]] Сайт
user[business_attributes[phone]] Телефон организации
user[business_attributes[email]] E-mail организации

Все возможные поля можно посмотреть тут https://github.com/mib32/okcity_app/blob/master/db/schema.rb

##Авторизация

Метод запроса Путь
POST /users/sign_in.json

Поля:

Поле Описание
user[name] Имя
user[email] Email
user[password] Пароль

При успешной авторизации тело ответа будет содержать модель пользователя в формате JSON, например

{"id":1,"email":"test@test.com","created_at":"2015-06-29T19:18:51.087+03:00","updated_at":"2015-06-29T19:18:51.419+03:00","name":null,"authentication_token":"E-FNVzT7iHSyhsLNVcgC","sale_token":"c4ca4238a","phone":null}

Где внимания заслуживают следующие поля - authentication_token это код, который выдается при каждой успешной авторизации, его надо включать в последствии в каждый запрос к API чтобы сервер мог установить вашу личность, и sale_token - это персональный код скидки клиента.

Ресурсы

Фильтрация результатов

Для ресурсов, где среди возможных параметров указан параметр q, доступен универсальная фильтрация. Если вы хотите отфильтровать результат по какому либо параметру, необходимо составить запрос вида q[%parameter_name%_%predicate%], где %parameter_name% это название параметра а %predicate% это один из предикатов, указанных тут - https://github.com/activerecord-hackery/ransack/wiki/Basic-Searching

К примеру, мы хотим получить все бизнесы у которых имя категории - Еда. Запрос получится такой:

http://okcity.pro/businesses.json?q[category_name_eq]=food

Предприятие

Действие Путь Возможные параметры
Index GET /businesses.json q
Show GET /businesses/(:id).json

Категория

Cодержит человеко-читаемое имя в свойстве local, а также все подкатегории в свойстве sub_categories.

Действие Путь Возможные параметры
Index GET /categories.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment