LINUX.ORG.RU
ФорумMobile

Сделал библиотеку для работы с Subsonic API на Android

 , , , ,


0

2

Привет, ЛОР.

Я решил начать паралелльный проект в свободное от работы время, целью был выбрал плеер для Subsonic совместимых серверов (Navidrome, etc.)

Поскольку у Subsonic не было никакого готового SDK для взаимодействия с ним - пришлось запилить своё, может кому интересно будет.

https://github.com/v-sulimov/android-libsubsonic

Из особенностей:

  1. Kotlin + Coroutines
  2. 0 внешних зависимостей, никаких сторонних жирных HTTP клиентов или парсинга JSON на основе рефлексии (не нужно и не нужно), все руками.
  3. 100% покрытие API методов на основе документации (https://www.subsonic.org/pages/api.jsp)
  4. Вся авторизация на хэшах и никаких паролей в plain text (хотя API это позволяет)

Проектировалось-писалось руками, документация и некоторые тесты докидывались нейронкой.

Библиотека так же доступна на MavenCentral.

★★★★★

Последнее исправление: dataman (всего исправлений: 1)

Это будет полезно для android разрабов, кому нужно притащить Subsonic. В бытность когда subsonic пользовался, не было ничего адекватного под онтопик кроме клиента на adobe air

Но вообще странно что они какой-нибудь oauth или bearer jwt хотя бы еще не притащили.

libsubsonic uses the salted MD5 token authentication scheme introduced in Subsonic API 1.13.0. When credentials are set via setCredentials, the library generates a random 8-character hex salt on every request and computes the MD5 hash of the concatenation of the password and salt. The token and salt are appended to each request URL automatically.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

Видимо, историческое наследие, там на уровне сервера нет концепции сессий как таковых.

Я начал им активно пользоваться после деградации стриминговых сервисов, поймал себя на мысли, что нет хороших Android клиентов, которые закрывали бы мои потребности, ну и раз уж опыт позволяет - почему-бы не запилить своё.

К веб версии вопросов в целом нет, отлично работает.

Jefail ★★★★★
() автор топика