Rusart (обсуждение | вклад) |
Rusart (обсуждение | вклад) |
||
Строка 88: | Строка 88: | ||
* gps - string - GPS координаты автосервиса (Например: 55.739276,37.508265) | * gps - string - GPS координаты автосервиса (Например: 55.739276,37.508265) | ||
+ | <span id="Department"></span> | ||
− | |||
=== Объект Department === | === Объект Department === | ||
* departmentId - integer - глобальный идентификатор бокса | * departmentId - integer - глобальный идентификатор бокса |
Версия 12:16, 15 января 2015
Содержание
Модуль "Автосервис" имеет необходимый набор API-методов для интеграции с вашей собственной учетной системой, в частности, для синхронизации резервов.
Сервис представляет из себя обычный RESTfull сервис поверх HTTP. Вызовы на модификацию принимаются через POST, на получение - через GET. Все ответы приходят в формате JSON. Обмен осуществляется в кодировке UTF-8.
При использовании метода POST в HTTP-заголовке Content-Type необходимо передать медиа-тип данных запроса application/x-www-form-urlencoded и соответственно с данным типом сформировать тело HTTP-запроса.
Для отладки вы можете воспользоваться расширением Advanced REST Client для обозревателя Google Chrome.
Базовым URI для веб-службы является:
http://car-care.abcp.ru
Строки от веб-службы, содержащие русские символы, возвращаются в виде escape unicode.
В каждом запросе должен присутствовать набор обязательных параметров:
- sitelogin - логин сайта с которого производится запрос
- sitepsw - пароль сайта, закодированный алгоритмом md5
Результат, возвращаемый веб-сервисом, может иметь один из следующих статусов:
- 200 - ОК
- 500 - Internal Server Error
Если выставлен статус 500, значит в процессе работы веб-сервиса произошла ошибка. В этом случае ответ веб-сервиса должен содержать объект с двумя полями errorCode и errorMessage.
{
"errorCode":2,
"errorMessage":"Недостаточно параметров"
}
Сущности
Объект CarCare
- carCareId - integer - глобальный идентификатор автосервиса
- url - string - сайт сервиса
- name - string - название сервиса
- workingTime - object WorkingTime - данные о рабочем времени
- address - объект Address
- timeZone - string - временная зона нахождения автосервиса [Пример: Europe/Moscow] (полный список поддерживаемых временных зон)
- phones - array of string - телефоны
- reservationStepInMinutes - integer - шаг резервирования в минутах
- status - integer - состояние модерации автосервиса (1 - в работе, 2 - на проверке модератора, 3 - подтверждён)
- conditions - string - условия работы
- departmentCount - integer - количество боксов
- departments - array of Department - массив боксов
- notificationsPhone - string - телефон для SMS-оповещений
- inNetwork - bool - признак "входит в сеть"
- informerSite - string - хост сайта, где расположен информер рейтинга автосервиса
- logo - string - имя файла логотипа, загруженного в image.api
- photos - array - массив фотографий
- notificationEmails - array of string - список email для уведомлений
Объект WorkingTime
Содержит массив с ассоциативными ключами от "1" до "7", соответствующими дням недели от ПН до ВС, а также "holiday", соответствующего праздничным дням. В качестве значений объект со свойствами "start" и "stop", соответствующими началу и окончанию рабочего времени в текстовом формате "09:00". Пустой объект {} - означает выходной.
Пример:
[
{
"1": {},
"2": {"start":"09:00","stop":"18:00"},
...
"7": {"start":"10:00","stop":"22:00"},
"holiday": {"start":"10:00","stop":"22:00"}
}
]
Объект Address
- countryId - integer - код страны
- regionCode - string - код региона
- cityCode - string - код города
- city - string - название города
- street - string - улица
- building - string - дом, строение
- apartment - string - № офиса
- subwayStation - string - название станции метро
- subwayStationId - integer - идентификатор станции метро
- subwayLine - string - название ветки метро
- subwayLineId - integer - идентификатор ветки метро
- gps - string - GPS координаты автосервиса (Например: 55.739276,37.508265)
Объект Department
- departmentId - integer - глобальный идентификатор бокса
- name - string - название бокса
- workingTime - object WorkingTime - данные о рабочем времени
- phones - array of string - телефоны
- reservationStepInMinutes - integer - шаг резервирования в минутах
- workplaceCount - integer - количество подъёмников (рабочих мест)
- availableWorks - array of Work - данные о видах работ и их продолжительности
- isHidden - boolean - видимость бокса
Объект Work
- workId - integer - глобальный идентификатор работы
- name - string - название (описание) вида работы
- duration - integer - длительность работы (не используется)
- manufacturers - array - массив марок автомобилей для которых выполняется эта работа конкретным боксом
- isDelete - признак "Удалена"
Пример:
[
{
"workId": 1,
"name": "Мойка",
"duration": 20,
"isDelete": 0,
"manufacturers": [
{
"code": "HYUND",
"name": "HYUNDAI"
}
]
},
{
"workId": 2,
"name": "Вулканизация",
"duration": 50,
"isDelete": 0,
"manufacturers": [ ]
},
...
]
Объект ReservationWork
- reservationWorkId - integer - глобальный идентификатор зарезервированной работы
- carCareId - integer - глобальный идентификатор автосервиса
- carCareName - string - название автосервиса
- departmentId - integer - глобальный идентификатор бокса
- departmentName - string - название бокса
- works - array of Work - массив объектов Work
- date - string - формат: ДД-ММ-ГГГГ - дата резервирования
- timeStart - string - формат: ЧЧ:ММ - время начала резервирования
- timeStop - string - формат: ЧЧ:ММ - время окончания резервирования
- intervals - array of array - массив с забронированными интервалами работы в формате array(0 => array("start" => "ЧЧ:ММ", "stop" => "ЧЧ:ММ"), ...)
- customerGid - integer - глобальный идентификатор клиента
- customer - Customer - информация о забронировавшем пользователе
- comment - string - комментарий клиента при резервировании
- isCancel - bool - значение 1 или 0 - если isCancel=1 при isDelete=0 значит отправлен запрос на удаление резерва. Если isCancel=1 при isDelete=1 значит запрос на отмену резерва подтвержден сотрудником автосервиса. Если isDelete=1 при isCancel=0 значит резерв удален сотрудником без запроса со стороны клиента
Customer
- fullName - string - ФИО клиента делающего резерв
- phoneNumber - string - номер телефона
- email - string - адрес электронной почты
- modificationId - integer - идентификатор модификации выбранного автомобиля (не используется)
- manufacture - string - марка автомобиля, например: BMW
- model - string - модель автомобиля, например - 118i
- registrationNumber - string - государственный регистрационный номер автомобиля