1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zgxtech_admin-linn-atxserver2

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
API.md 7.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 21:11 d76537c

API-документ atxserver2

Интерфейс для использования устройства основан на API openstf (https://github.com/openstf/stf/blob/master/doc/API.md).

В качестве примера адреса atxserver2 используется http://localhost:4000.

Все интерфейсы используют токен аутентификации, каждый запрос в заголовке содержит Authorization: Bearer xxxxx-token-xxxx.

Токен можно получить на странице $SERVER_URL/user.

После получения токена можно выполнить небольшую попытку. Предположим, что токен сохранён в переменной среды $TOKEN.

$ pip install httpie # установка инструмента командной строки httpie
$ http GET $SERVER_URL/api/v1/user Authorization:"Bearer $TOKEN"
{
    "username": "fa",
    ....
}

Если токен введён неправильно, сервер отвечает 403 Forbidden.

Некоторые операции также выполняются с помощью небольшого инструмента httpie. Подробнее см. в httpie cheetsheet (https://devhints.io/httpie).

Получение информации о пользователе

GET /api/v1/user

$ http GET $SERVER_URL/api/v1/user
{
    "email": "fa@example.com",
    "username": "fa",
    "token": "xxxxx.....xxxxx",
    "createdAt": "2019-03-06T12:38:02.338000",
    ...
}

Получение списка устройств

GET /api/v1/devices

$ HTTP GET $SERVER_URL/api/v1/devices
# Поддерживаемые параметры фильтрации ?platform=apple&usable=true

{
    "success": true,
    "devices": [{
        "platform": "android",
        "present": true,
        "using": true,
        "colding": false,
        "userId": "fa@example.com",
        "properties": {
            "brand": "SMARTISAN",
            "version": "7.1.1"
        },
        ....
    }],
    "count": 4,
}

Несколько важных полей:

  • platform в настоящее время имеет два значения: android и apple.
  • present указывает, находится ли устройство в сети.
  • colding указывает, занято ли устройство очисткой или самопроверкой, в этом случае устройство не может быть использовано.
  • using указывает, используется ли устройство кем-либо.
  • userId представляет идентификатор пользователя, здесь идентификатор фактически является адресом электронной почты.
  • properties представляет некоторую статическую информацию о состоянии устройства.

usable эквивалентно {present: true, using: false, colding: false}.

Получить информацию об отдельном устройстве (без поля sources)

GET /api/v1/devices/${udid}

$ HTTP GET $SERVER_URL/api/v1/devices/${udid}
{
    "success": true,
    "device": {
        "udid": "6EB0217704000486",
        "platform": "android",
        "present": true,
        "using": false,
        "colding": false,
        "userId": null,
        "properties": {
            "brand": "HONOR",
            "model": "DUK-AL20",
            "name": "华为 荣耀 V9",
            "serial": "6EB0217704000486",
            "version": "8.0.0"
        },
        "updatedAt": "2019-03-29T14:53:56.569000",
        "usingBeganAt": "2019-03-28T18:33:23.100000"
    }
}

При отсутствии udid статус кода = 400.

Занять устройство

POST /api/v1/user/devices

$ http POST $SERVER_URL/api/v1/user/devices <<< '{"udid": "xx...xxxx"}'

{
    "success": true,
    "description": "Устройство успешно добавлено"
}

Данные передаются через полезную нагрузку в формате JSON.

— udid — обязательный параметр (udid Android-устройства — это product, mac-адрес, серийный номер, сгенерированный по комбинации). — idleTimeout: максимальное время простоя устройства в секундах (необязательно), если текущее время — время активности > idleTimeout, устройство автоматически освобождается.

Пример:

{
    "udid": "xlj1311l2fkjkzdf",
    "idleTimeout": 600
}

Если вы администратор, вы также можете передать email, чтобы указать другого человека в качестве пользователя устройства.

Пример:

{
    "udid": "xlj1311l2fkjkzdf",
    "email": "hello@world.com"
}

Обновить время активации интерфейса

GET /api/v1/user/devices/{$UDID}/active

$ http GET /api/v1/user/devices/${UDID}/active
{
    "success": true,
    "description": "Время активации устройства обновлено"
}

Получите информацию об устройстве пользователя (включая поле sources)

GET /api/v1/user/devices/${UDID}

$ http GET $SERVER_URL/api/v1/user/devices/${UDID}

{
    "success": true,
    "device": {
        "platform": "android",
        "present": true,
        "using": true,
        "colding": false,
        "userId": "fa@example.com",
        "properties": {
            "brand": "SMARTISAN",
            "version": "7.1.1"
        },
        "source": {
            "atxAgentAddress": "10.0.0.1:20001",
            "remoteConnectAddress": "10.0.0.1:20002",
            "whatsInputAddress": "10.0.0.1:20003",
            "secret": "6NC5Tls1",
            "url": "http://10.0.1.1:3500",
        }
    }
}

По сравнению с /api/v1/devices, в полученном устройстве есть дополнительное поле source, которое подробно описано ниже.

Общие для Android и iOS:

— url: URL провайдера, который позволяет устройству cold и устанавливать приложения.

Android-специфичные:

— atxAgentAddress: в основном используется для тестирования фреймворка uiautomator2. — remoteConnectAddress: используется для подключения adb connect. — whatsInputAddress: этот параметр можно игнорировать, он в основном предоставляет адрес ввода в реальном времени для удалённого устройства.

iOS-специфичный:

— wdaUrl: HTTP-интерфейс webdriveragent, например http://10.0.0.1:9300.

Доступ к текущему потоку изображений через WebSocket на ${wdaUrl}/screen.

Освободить устройство

DELETE /api/v1/user/devices/${UDID}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zgxtech_admin-linn-atxserver2.git
git@api.gitlife.ru:oschina-mirror/zgxtech_admin-linn-atxserver2.git
oschina-mirror
zgxtech_admin-linn-atxserver2
zgxtech_admin-linn-atxserver2
master