# Open API

PassOffice API представляет собой [REST API](https://ru.wikipedia.org/wiki/REST), позволяющий выполнить интеграцию с сторонними системами для работы с [заявками PassOffice](https://docs.aamsystems.ru/passoffice/passoffice-guide/operator-guide-doc/my-requests) (создание, получение статуса и аннулирование).

**1. Запуск сервиса интеграции**

Чтобы воспользоваться PassOffice API, необходимо запустить сервис интеграции, находящийся по пути:

`[PassOffice]/`*`{version}`*`/bin/IntegrationServer.bat`, предварительно задав в файле `[PassOffice]/`*`{version}`*`/bin/config/integration-server.properties` следующие настройки:

```properties
server.port=8080 # порт для PassOffice Open API
passoffice.url=http://localhost:4201 # адрес сервера PassOffice
```

**2. Документация API (Swagger)**

После запуска службы PassOffice API руководствуйтесь Swagger документацией, доступной по адресу:

```
http://localhost:8080/webjars/swagger-ui/index.html
```

Предварительно необходимо авторизоваться, указав в правом верхнем углу токен, созданный в [API ключи](https://docs.aamsystems.ru/passoffice/passoffice-guide/admin-guide-doc/administration/api-klyuchi).

**3. Настройки SSL**

Для настройки SSL соединения с PassOffice API воспользуйтесь [инструкцией](https://docs.aamsystems.ru/passoffice/passoffice-guide/admin-guide-doc/ustanovka-passoffice/ispolzovanie-ssl) и проделайте аналогичные шаги для настроек `integration-server.properties`.

**4. Поиск встречающих при создании заявки**

Для поиска встречающих при создании заявки используются ключевые поля, которые настраиваются в [Корне системы](https://docs.aamsystems.ru/passoffice/passoffice-guide/admin-guide-doc/konfigurirovanie/system-root) в соответствии с тем, по каким полям нужен поиск.

Поиск можно настроить с помощью нескольких наборов полей, например, по фамилии, имени и отчеству или только по электронной почте. В таком случае в теле запроса на создание заявки необходимо передать объект с заданными полями для поиска.

Также поиск можно выполнить по идентификатору человека. Для этого в объекте встречающего достаточно передать только его идентификатор.

**5. Значения по умолчанию (Группы доступа, Согласующие)**

Для проставления значений по умолчанию, например, Групп доступа, Согласующих, при создании заявки необходимо использовать правила объектов с условием для поля "Заявка" и операцией "Объект создан".

Данное правило примените к настройкам внешнего вида оператора, под которым работает сервер интеграции.
