# Работа с серверным Oz API

## Retrofit API-интерфейс

SDK содержит интерфейс `IOzForensicsAPI` с описанием сетевых вызовов к API, который можно использовать для создания инстанса Retrofit.

Этот интерфейс использует gson-converter и оперирует классами из пакета `com.ozforensics.liveness.sdk.api.model`.

Кроме того в этом интерфейсе определен статический метод для создания инстанса Retrofit по умолчанию (без логирования, интерцепторов и прочего, таймауты 15 секунд), который будет обращаться к серверу по заданному адресу:

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
val apiService = OzForensicsAPI.create(BASE_URL)ko
```

{% endtab %}

{% tab title="Java" %}

```java
OzForensicsAPI apiService = OzForensicsAPI.Factory.create(BASE_URL);
```

{% endtab %}
{% endtabs %}

## Класс OzForensicsService

SDK содержит класс «OzForensicsService», использующий Retrofit-инстанс из `IOzForensicsAPI.create()`. Этот класс обертывает сетевые вызовы из Retrofit-интерфейса и учитывает наличие токена. При выполнении запроса auth класс автоматически сохраняет для себя токен, кроме того, выполняет сетевые запросы, добавляя необходимую метаинформацию там, где это необходимо (создание папки, выгрузка медиа на анализ). Вызовы методов этого класса – асинхронные (используется интерфейс `StatusListener<>`) Получить экземпляр класса можно следующим образом:

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
val service = OzForensicsService(BASE_URL, ACCESS_TOKEN)
```

{% endtab %}

{% tab title="Java" %}

```java
OzForensicsService service = OzForensicsService(BASE_URL, ACCESS_TOKEN);
```

{% endtab %}
{% endtabs %}

Если параметр `TOKEN` установлен `null`, то для выполнения вызовов к API (кроме auth) сначала необходимо выполнить авторизацию:

{% tabs %}
{% tab title="Kotlin" %}

```
service.auth(EMAIL, PASSWORD, listener)
```

{% endtab %}

{% tab title="Java" %}

```
service.auth(EMAIL, PASSWORD, listener)
```

{% endtab %}
{% endtabs %}

После удачного запроса будет выполнен `onSuccessCallback`, в который будет передан `AuthResponse` c access-токеном.
