Порядок ранжирования радиостанций
Все радиостанции, полученные через api, должны быть показаны слушателю в определённом порядке.
При первом отображении списка станций для слушателя
- Список станций должен отображаться в случайном порядке
При последующих отображениях списка станций для слушателя (возврат пользователя)
- Станции из «избранного» в порядке их добавления слушателем
- Станции в порядке последнего прослушивания пользователем
- Оставшиеся станции в случайном порядке
Web http API
Сервер с API расположен по адресу https://api.radioplayer.ru
API защищено токеном, уникальным для каждого партнёра. Токен необходимо передавать в query части любого запроса как параметр ?rp-api-token=XXXXXXXXXXXX Например: https://api.radioplayer.ru/api/web/stations?region=78&rp-api-token=Hh6d9cUaQfPDQ4dfG9pZe5TPVXRsPKva Получить токен можно по почте r.putintsev@micro-it.ru nester@micro-it.ru
Все данные надо присылать в формате JSON, проставляя заголовок Content-Type: application/json
. Возвращаемые данные также в формате JSON (если они есть).
Сейчас доступны следующие методы.
Отправка сообщения
POST
:/api/web/message
Формат body:
{
"name": yup.string().trim().max(255).required(),
"email": yup.string().trim().max(255).required(),
"message": yup.string().trim().max(10000).required(),
}
Возвращает 200 статус, если все ок.
Получение региона по координатам
GET
: /api/web/region?latitude=42.15546&longitude=54.13456
Возвращается объект JSON вида:
{ "id": 40, "name": "Москва" }
или null
если ничего не было найдено.
Получение списка регионов
GET
: /api/web/regions
Возвращает массив регионов. Объект региона имеет вид:
{ "id": 1, "name": "Россия", "code": "RUS" }
Получение станций по id региона
GET
: /api/web/stations?region=40
Возвращает массив станций, где все федеральные заменены на региональные для указанного региона, в случае если региональные потоки существуют.
- Объект станции внутри массива содержит следующие поля:
- id: уникальный идентификатор станции
- name: название станции
- source: ссылка на поток (зависит от региона) Может содержать массив ссылок на равнозначные потоки. В случае если вместо одной ссылки указан массив, то запускать проигрывание можно любой из них
- mobileSourceUrl: ссылка на поток для плеера мобильного приложения. Формат m3u8 или json
- reserveSourceUrl: ссылка на резервный поток (зависит от региона)
- logoWhite: ссылка на белый логотип станции
- logoBlack: ссылка на тёмный логотип станции
- logoColored: ссылка на цветной логотип станции
- logoWhitePng: ссылка на белый логотип станции в png формате
- logoBlackPng: ссылка на тёмный логотип станции в png формате
- logoColoredPng: ссылка на цветной логотип станции в png формате
-
socialLinks: массив объектов веб-ресурсов станции со следующими полями
- type: тип веб-ресурса
- url: URL веб-ресурса
-
metadata: (не обязательное поле) объект который может содержать в себе два поля. С их помощью по схеме https://hostingradio.ru/mdsabout можно обновлять текущие метаданные для потока.
- jsonUrl: ссылка на json с полным описанием метаданных в потоке (сервер может отвечать долго)
- uniqueIdJsonUrl: (не обязательное поле) ссылка на идентификатор текущих метаданных. Служит для частого опроса на предмет изменений jsonUrl. Если идентификатор текущих метаданных меняется, то в этом случае нужно запрашивать jsonUrl. Есть не у всех станций. Отвечает в большинстве случаев быстро.
- googleAnalytics: (не обязательное поле) идентификатор станции для google аналитики
- yandexMetrica: (не обязательное поле) идентификатор станции для yandex метрики
- frequency: (не обязательное поле) частота вещания станции в текущем регионе. Для федеральных потоков отсутствует.
- tags: теги станции для поиска.
- enabled: доступность станции - значение false в случае если не доступен региональный поток и не доступен федеральный поток станции.
Данный метод получает только те станции, которые вещают в FM-диапазоне / имеют федеральное или региональное вещание. Для получения списка цифровых станций необходимо дополнительно использовать метод ниже.
Получение списка цифровых станций
GET
: /api/web/digital
Возвращает список цифровых станций, не имеющих FM-частоты.
Вещание цифровых станций одинаково для любого региона. Формат отдаваемых данных соответствует формату данных при получении станций по id региона.
Получение глобальных настроек
GET
: /api/web/options
Возвращает объект вида:
{
"googleAnalytics": "IDENTIFIER_HERE",
"yandexMetrica": "IDENTIFIER_HERE",
"lastModifyTs": "UNIXTIME"
}
Отправка статистики при добавлении (удалении) станции в избранное
POST
: /api/web/favorite
В body надо поместить JSON вида:
{
"stationId": 100500,
"liked": 1/0, // 0 если удалил из избранного
}
Возвращает статус 200 если все ок.
Ошибки
При ошибках всегда приходит не 200 статус (обычно 500) и JSON вида:
{
"status": status,
"message": message,
}