SDK для NestJS
Перед подключением
SDK помогает подготовить описание действий, но не заменяет проверку авторизации backend.
Используйте SDK для NestJS
Для контекстов app, agent_tool и automation_step расширение можно добавить готовыми декораторами из @senlerio/api:
import { Get } from "@nestjs/common";
import { AppAction } from "@senlerio/api/app-actions/nest";
@Get("orders")
@AppAction({
name: "list_orders",
description: "Возвращает заказы текущего проекта.",
readOnly: true,
destructive: false,
idempotent: true,
response: { status: 200, type: OrdersResponseDto },
})
listOrders() {
// Проект берётся из проверенной management session.
}
Для конфигураторов используйте AgentToolConfigurator и AutomationStepConfigurator: они сами задают нужный контекст и вид результата. Общие типы и framework-neutral сборщик метаданных экспортируются из @senlerio/api/app-actions.
После генерации OpenAPI проверьте локальный файл или URL:
npx senler-app validate-openapi ./openapi.json
Проверка находит неверные имена и контексты, дубликаты, неподдерживаемые параметры и тела, отсутствие схемы ответа, а также неправильные пути конфигурации и веток. Добавьте её в CI backend приложения.
Точки входа и проверка контракта
Для действий приложения в пакете есть отдельные точки входа. Общие типы, сборщик метаданных и проверка OpenAPI доступны из @senlerio/api/app-actions, а декораторы NestJS — из @senlerio/api/app-actions/nest. NestJS остаётся необязательной peer-зависимостью и не загружается основным клиентом SDK.
Используйте установленную версию пакета и для генерации метаданных, и для проверки OpenAPI. NestJS остаётся необязательной peer-зависимостью основного клиента.
В версии 0.4.0 декораторы и проверка поддерживают app, agent_tool и automation_step. Контекст funnel описывается в OpenAPI напрямую: отчёты для воронок.
Команда senler-app validate-openapi возвращает ненулевой код при ошибке контракта x-senler-app-action и подходит для CI.