# 9.2 Определение API

## Активация API

API Bubble в настоящее время доступен для пользователей на тарифе Personal и выше. Для активации API перейдите в раздел API вкладки Настройки и поставьте флажки напротив соответствующих пунктов.

![](https://manual.bubble.is/assets/Desktop%202017-03-15%20at%205.25.20%20PM.png)

1. API для POST/Процессов позволяет вам обратиться к новой странице вашего приложения, что позволит вам редактировать процессы, которые будут запускаться другими сервисами или будут использоваться для отложенного запуска. Если вам нужно запланировать на будущее запуск некоторых процессов вашего приложения  или запускать какой-то процесс еженедельно или ежемесячно, то API процессов это то, что вам нужно.
2. API GET/Данных - возможность открыть внешнему миру доступ к данным.

## Настройка API GET/Данных

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

Важно: как только вы открыли доступ к типу данных, внешние сервисы и разработчики смогут получить доступ к вашим данным даже без посещения вашего приложения. Вы должны тщательно настроить политику конфиденциальности для того, чтобы только авторизованные разработчики (например те, у которых есть есть ключ API) могли получить доступ к нужным данным. См. раздел Аутентификация (!!!ЛНК!!!) для получения большего количества информации о ключах API , аутентификации и правах.

## Настройка процессов для API

Вы можете попасть в раздел, отвечающий в вашем приложении за API из нижней части меню приложения. Вы перейдете на специальную "страницу". Вкладка Дизайн будет недоступна, и вся работа будет происходить во вкладке Процессы.![](https://manual.bubble.is/assets/Desktop%202017-03-15%20at%205.49.53%20PM.png)

Детали можно прочитать в справочнике (!!!ЛНК!!!). Следующий раздел описывает основные и ключевые пункты при добавлении точек входа в ваше приложение.

### Создание точки входа (endpoint)

Создание процессов для API (или "точек входа") подобно созданию обычных процессов на вашей странице, с некоторыми различиями.

Каждая точка входа должна иметь уникальное имя; Инспектор ошибок будет следить за дублями. Имена должны быть в нижнем регистре, без пробелов, так как они будут использоваться в ссылках и запросах по API (см ниже)

Действия, которые могут быть использованы в процессах для API, работают только на стороне сервера, как описано в главе Создание Процессов (!!!ЛНК!!!).

Вы можете выбрать из нескольких вариантов авторизации и открытия внешнему миру точки входа.

1. Открыть как общедоступную точку входа/Expose as a public endpoint: поставьте флажок здесь, если хотите использовать эту точку входа в другом сервисе (таком как Stripe) или дать другим разработчикам возможность её использовать. Если вы настраиваете процесс для отложенных операций внутри вашего приложения, флажок здесь стоять не должен.
2. Точка входа может использоваться без аутентификации/This endpoint can be run without authentication: когда процесс для API запущен сторонним сервисом (см подробности об аутентификации в разделе Использование API (!!!ЛНК!!!)) он обычно работает через ключ для API. Поставьте флажок здесь, если в запросах не требуется ключ для API. Этот вариант используется, в частности, при регистрации или авторизации в вашем приложении.
3. Игнорировать правила конфиденциальности при запуске рабочего процесса/Ignore privacy rules when running the workflow: процесс для API запускается на основе токена/ключа, который посылается вместе с запросом. В соответствии с этим применяются правила конфиденциальности. Тем не менее, иногда может понадобиться, чтобы рабочий процесс обошел эти правила, даже если запущен без аутентификации, и работал от имени администратора, который обладает полными правами при работе с данными. Если это так, поставьте флажок здесь. Как всегда при работе с настройками безопасности и конфиденциальности, используйте эту функцию с осторожностью.

### Определение параметров

Процесс для API может принимать некоторые параметры. Этим вы зададите, какие данные нужно посылать в процесс при отправке запроса (или создании отложенного процесса). Есть два способа задания параметров. Вы можете либо задать структуру самостоятельно, либо определить структуру получаемых данных автоматически. Первый способ подойдет для задаваемой вами точки входа и когда вы управляете тем, как создается запрос (например, при создании отложенных процессов или при создании специального клиента), в то время как второй способ подойдет для использования точки входа для ответа на вебхук.

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

![](https://manual.bubble.is/assets/Desktop%202017-03-15%20at%206.10.19%20PM.png)

#### Определение вручную

При добавлении параметра, вы должны задать ему имя, выбрать тип данных и уточнить, является ли этот параметр обязательным. Тип данных очень важен, так как Bubble будет проверять данные на корректность при отправке запроса и выдаст ошибку, если параметр не подходит. Подробности о составлении запроса смотри ниже.

![](https://manual.bubble.is/assets/Desktop%202017-03-15%20at%206.09.35%20PM.png)

#### Автоматическое определение

Также вы можете автоматически определять структуру данных, которые посылаются сторонним сервисом (вебхуком). Для этого вы можете кликнуть по кнопке "Опознать данные"/"Detect data" и отправить запрос на точку входа.

![](https://manual.bubble.is/assets/a11b1808-36ec-44e7-b725-a0767c406310.png)

Обратите внимание, для того, чтобы определение сработало, запрос должен быть отправлен на URL точки входа с "initialize" на конце. Точка входа должна выглядеть как:

`https://appname.bubbleapps.io/version-test/api/1.1/wf/endpoint/initialize`

или

`http://yourdomain.com/version-test/api/1.1/wf/endpoint/initialize`

Запрос должен отправляться на тестовую версию вашего приложения, так как именно её вы редактируете.

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

### Вывод данных из API процессов

Большинство процессов для API запускают какие-либо действия, но в некоторых обстоятельствах вам может понадобиться вывести какие-то данные. Например, если точка входа создает сущность, вам могут понадобиться эта сущность в виде данных, чтобы можно было сохранить либо отобразить результат. Для вывода данных вы можете использовать действие "Вывести данные из API"/"Return data from API". Это действие - особенность процессов для API, и его не найти у обычных процессов. Для более подробного изучения смотрите этот раздел (!!!ЛНК!!!) справочника.

### Спецификация Swagger

Спецификация Swagger - стандартный способ описания API. Он может использоваться для создания документации или для того, чтобы интегрировать другие инструменты с API. Bubble предоставляет спецификацию Swagger "из коробки" при активации API для вашего приложения. Для того, чтобы её получить, перейдите к точке входа:

`https://appname.bubbleapps.io/api/1.1/meta/swagger.json`

или

`http://yourdomain.com/api/1.1//meta/swagger.json`

Здесь (!!!ЛНК!!!) вы можете прочитать подробнее о стандарте спецификации Swagger.
