---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.5
alternate:
  - https://divkit.tech/docs/en/quickstart/simple-backend.md
  - https://divkit.tech/docs/ru/quickstart/simple-backend.md
  - href: ru/quickstart/simple-backend.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://divkit.tech/docs/ru/llms.txt

# Простой бэкэнд
Бекэнд для DivKit можно развернуть с помощью сервиса [Yandex Cloud Functions](https://yandex.cloud/ru/services/functions). Для этого понадобится учетная запись Yandex Cloud.

## Создание функции на Kotlin
Начало работы с Yandex Cloud подробно описано в [инструкции](https://yandex.cloud/ru/docs/getting-started).

Сперва нужно создать саму функцию:
1. В [консоли управления](https://console.yandex.cloud/) перейдите в каталог, в котором хотите создать функцию.
2. Выберите сервис Cloud Functions.
3. Нажмите кнопку **Создать функцию**.
4. Введите имя функции.
5. Нажмите кнопку **Создать**.
6. Выберите среду выполнения **Kotlin**.
6. Нажмите кнопку **Продолжить**.

На экране появится редактор функции в котором нужно сделать следующее:
1. Выберете вариант задания функции **Редактор кода**.
2. Нажмите кнопку **Создать файл**.
3. Назовите его `Handler.kt`.
4. Справа от списка файлов вставьте код:
```Kotlin translate=no
package cloud.divkit

// Модель данных запроса
data class Request(
    val httpMethod: String?,
    val headers: Map<String, String> = mapOf(),
    val body: String = ""
)

// Модель данных запроса
data class Response(
    val statusCode: Int,
    val body: String
)

// Обработчик запросов
fun handle(request: Request): Response {
    return Response(200, card)
}

// DivKit верстка в формате JSON
private const val card = """
{
  "log_id": "cloud_divkit",
  "states": [
    {
      "state_id": 0,
      "div": {
        "type": "text",
        "text": "Hello, Username!"
      }
    }
  ]
}
"""
```
5. Укажите точку входа `cloud.divkit.Handler::handle`. Точка входа состоит из имени пакета, имени файла обработчика функции и метода. Допольнительную информацию можно найти в [этой инструкции](https://yandex.cloud/ru/docs/functions/lang/kotlin/handler).
6. Нажмите кнопку **Сохранить изменения**.


## Использование Kotlin DSL
Kotlin DSL представляет собой способ описания DivKit верстки непосредственно в коде Kotlin приложения. Чтобы им воспользоваться, нужно подключить внешнуюю зависимость.
Соберите небольшой проект:
1. Создайте файл `build.gradle.kts`.
2. Укажите в нем следующее:
```Kotlin translate=no
plugins {
    kotlin("jvm") version "2.0.0"
}

repositories {
    mavenCentral()
}

dependencies {
    implementation("com.fasterxml.jackson.core:jackson-annotations:2.18.3")
    implementation("com.fasterxml.jackson.core:jackson-databind:2.18.3")
    implementation("com.yandex.div:kotlin-json-builder:31.0.0")
}
```
3. Создайте файл обработчика `src/main/kotlin/cloud/divkit/Handler.kt` аналогичный тому, что был сделал в параграфе [с простой функцией](#sozdanie-funkcii-na-kotlin).
4. Измените метод `handle(request: Request)` следующим образом:
```Kotlin translate=no
fun handle(request: Request): Response {
    val card = divan {
        data(
            logId = "greeting",
            div = text("Hello, Username!")
        )
    }
    return Response(200, card.toJson())
}
```
5. Упакуйте указанные файлы в zip-архив.

Полный пример доступен по [ссылке](https://github.com/divkit/divkit/tree/main/samples/cloud-functions/kotlin-json-builder).

Теперь на его основе можно создать функцию:
1. Создайте новую Cloud функцию так же, как это делалось в [предыдущем разделе](#sozdanie-funkcii-na-kotlin).
2. В редакторе выберете способ задания **ZIP-архив**.
3. Нажмите на кнопку **Прикрепить файл**.
4. Укажите путь до созданного zip-архива.
5. Задайте точку входа `cloud.divkit.Handler::handle`.
6. Нажмите кнопку **Сохранить изменения**.

## Отображение результата
Ответ созданной функции можно проверить в демо-приложении DivKit:
1. Выберете нужную функцию из списка.
2. Скопируйте ссылку, указанную в пункте **Ссылка для вызова**.
3. Откройте демо-приложение.
4. Зайдите в раздел **Demo** (Android) или **Playground** (iOS).
5. Вставьте ссылку.
6. Нажмите кнопку **Show the reult**.

Стоит обратить внимание на то, что по умолчанию все функции являются приватными и для доступа к ним нужен соответствующий токен. Чтобы демо-приложение смогло отобразить верстку, нужно [сделать функцию публичной](https://yandex.cloud/ru/docs/functions/operations/function/function-public).

## Полезные ссылки
* [Начало работы с Yandex Cloud](https://yandex.cloud/ru/docs/getting-started)
* [Инструкция по созданию функций на Kotlin](https://yandex.cloud/ru/docs/functions/quickstart/create-function/kotlin-function-quickstart)
* [Простая Cloud функция c DivKit версткой](https://github.com/divkit/divkit/tree/main/samples/cloud-functions/simple/Handler.kt)
* [Cloud функция с использованием Kotlin DSL](https://github.com/divkit/divkit/tree/main/samples/cloud-functions/kotlin-json-builder)

<!-- source: ru/_includes/index/troubleshooting.md -->
## Узнать больше {#troubleshooting}

Вы можете обсуждать интересующие вас темы в сообществе пользователей DivKit в Telegram: [https://t.me/divkit_community_ru](https://t.me/divkit_community_ru).



[Репозиторий DivKit](https://github.com/divkit/divkit)




<!-- endsource: ru/_includes/index/troubleshooting.md -->
