Прокси-серве для Яндекс.Музыки

Прошлой весной начал разбираться с OpenAPI и решил написать схему для Яндекс.Музыки. Проблема была лишь в том, что из-за CORS нормально пользоваться сгенерированной документацией невозможно. Чтобы отключить CORS в хроме приходилось запускать его с флагом -disable-web-security.


Решение скажем честно - не очень 👎. Правильным решением будет написание прокси-сервера, на котором были бы разрешены кросдоменные запросы. Другими словами, вместо того, чтобы напрямую обращаться к серверу Я.Музыки, на котором запрещены крос-доменные запросы, мы обращаемся к прокси-серверу, который перенапрявляет все наши вопросы к Я.Музыке и возвращает нам ответ. Так как CORS, есть только в браузере, то мы свободно отправляем запросы с нашего прокси сервера на сервер Я.Музыки.


Собственно, вчера я и написал такой прокси-сервер на основе библиотеки cors-anywhere и захостить его на хероку (https://yandex-music-cors-proxy.herokuapp.com/).


Теперь все запросы можно проксировать следующим образом:

https://yandex-music-cors-proxy.herokyapp.com/<any-url>

Например:

https://yandex-music-cors-proxy.herokuapp.com/https://api.mu...

Ресурсы:

- Исходники прокси сервера

- Исходники OpenAPI-схемы Я.Музыки

- OpenAPI документация Я.Музыки


Ещё по теме:


- cors-anywere

- Getting Started on Heroku with Node.js

- GitHub Integration (Heroku GitHub Deploys)