Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • R Radio Player Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Wiki
    • Wiki
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • Public Projects
  • Radio Player Public
  • Radio Player Wiki
  • Wiki
  • Home

Home · Changes

Page history
Create home authored Dec 02, 2022 by Roman Putintsev's avatar Roman Putintsev
Hide whitespace changes
Inline Side-by-side
home.md 0 → 100644
View page @ 9273cda7
# 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
Все данные надо присылать в формате 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:** ссылка на цветной логотип станции
- **socialLinks**: массив объектов веб-ресурсов станции со следующими полями
- **type**: тип веб-ресурса
- **url**: URL веб-ресурса
- **metadata:** *(не обязательное поле)* объект который может содержать в себе два поля. С их помощью по схеме [https://hostingradio.ru/mdsabout](https://hostingradio.ru/mdsabout) можно обновлять текущие метаданные для потока.
- **jsonUrl:** ссылка на json с полным описанием метаданных в потоке (сервер может отвечать долго)
- **uniqueIdJsonUrl:** *(не обязательное поле)* ссылка на идентификатор текущих метаданных. Служит для частого опроса на предмет изменений jsonUrl. Если идентификатор текущих метаданных меняется, то в этом случае нужно запрашивать jsonUrl. Есть не у всех станций. Отвечает в большинстве случаев быстро.
- **googleAnalytics:** *(не обязательное поле)* идентификатор станции для google аналитики
- **yandexMetrica:** *(не обязательное поле)* идентификатор станции для yandex метрики
- **frequency:** *(не обязательное поле)* частота вещания станции в текущем регионе. Для федеральных потоков отсутствует.
- **tags:** теги станции для поиска.
- **enabled:** доступность станции - значение false в случае если не доступен региональный поток и не доступен федеральный поток станции.
Данный метод получает только те станции, которые вещают в FM-диапазоне / имеют федеральное или региональное вещание. Для получения списка цифровых станций необходимо дополнительно использовать метод [ниже](https://www.notion.so/Web-http-API-cd35dbf96fb140319c48efbef836851a).
---
### Получение списка цифровых станций
`GET`: `/api/web/digital`
Возвращает список цифровых станций, не имеющих FM-частоты.
Вещание цифровых станций одинаково для любого региона. Формат отдаваемых данных [соответствует формату данных при получении станций по id региона](https://www.notion.so/Web-http-API-cd35dbf96fb140319c48efbef836851a).
### Получение глобальных настроек
`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,
}
```
\ No newline at end of file
Clone repository
  • Home