Сервис предоставляет информацию о наличии обновлений мобильного приложения, а также список URL-ов для запросов к API.
Установка зависимостей и запуск для разработки:
yarn
yarn start
Запуск тестов:
yarn test
-
В файле конфигурации
config/settings.yml
в разделеversions
заменить неподдерживаемуюversion
на необходимую. Например, если минимальная версия теперь3.0.1
, а в конфиге стоит<3.0.0
, то<3.0.0
заменить на<3.0.1
-
Заменить минимальную допустимую версию
В файле конфигурации config/settings.yml
в разделе versions
поменять message
на нужное сообщение
у соответствующей версии
yarn build
docker-compose up --build -d
Прописать переменные окружения APP_USER
, APP_HOST
, APP_URL
и BUGSNAG_API_KEY
make deploy
При выполнении скрипта инкрементации, создается коммит и тег с новой версией проекта.
Инкрементация patch:
yarn version:patch
Инкрементация minor:
yarn version:minor
Инкрементация major:
yarn version:major
Endpoint | Параметры | Ответ | Описание |
---|---|---|---|
GET / | platform - android или ios osVersion - 13\14\15 appVersion - 3.0.0 |
{ appLink: string, message: string, blockApp: boolean, urls: string[] } |
Проверка версии приложения, а также предоставление списка хостов для запросов |
GET /version | { version: string } |
Версия самого приложения Janitor |
Соблюдаем https://jsonapi.org/format/#content-negotiation. Клиент обязательно должен указать в заголовках запроса:
Content-Type: application/json
Accept: application/json
Пример успешного запроса. Обновление приложения не требуется:
% curl -i 'localhost:8080/?platform=ios&osVersion=14&appVersion=3.0.1' \
-H "Content-Type: application/json" \
-H "Accept: application/json"
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 106
Date: Wed, 06 Oct 2021 11:44:46 GMT
Connection: keep-alive
Keep-Alive: timeout=5
{"appLink":"ios_app_store_link","message":"Обновлений нет","blockApp":false,"urls":["https://bitzlato.com/api"]}
Пример успешного запроса. Приложение устарело, но обновление не требуется:
% curl -i 'localhost:8080/?platform=ios&osVersion=14&appVersion=3.0.0' \
-H "Content-Type: application/json" \
-H "Accept: application/json"
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 108
Date: Wed, 06 Oct 2021 11:30:36 GMT
Connection: keep-alive
Keep-Alive: timeout=5
{"appLink":"ios_app_store_link","message":"Вам желательно обновиться","blockApp":false,"urls":["https://test.com/api"]}%
Пример успешного запроса. Приложение устарело, требуется обновление:
% curl -i 'localhost:8080/?platform=ios&osVersion=14&appVersion=2.9.9' \
-H "Content-Type: application/json" \
-H "Accept: application/json"
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 112
Date: Wed, 06 Oct 2021 11:29:29 GMT
Connection: keep-alive
Keep-Alive: timeout=5
{"appLink":"ios_app_store_link","message":"Данная версия приложения больше не поддерживается. Вам необходимо обновить приложение","blockApp":true,"urls":["https://test.com/api"]}%
Пример запроса с ошибкой:
% curl -i 'localhost:8080/?platform=symbian&osVersion=14&appVersion=1.0.0' \
-H "Content-Type: application/json" \
-H "Accept: application/json"
HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8
Content-Length: 86
Date: Wed, 06 Oct 2021 10:31:50 GMT
Connection: keep-alive
Keep-Alive: timeout=5
{"message":"Available platforms: [android, ios]. You specified: symbian","status":400}%