Разработка Swagger/OpenAPI документации для API 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка Swagger/OpenAPI документации для API 1С-Битрикс
Простая
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1167
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    563
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    743
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка Swagger/OpenAPI документации для API 1С-Битрикс

Swagger (OpenAPI Specification) — это стандартный формат описания REST API. Из спецификации автоматически генерируется интерактивная документация: разработчик видит все эндпоинты, параметры, форматы запросов и ответов, может тут же сделать тестовый запрос прямо из браузера.

Зачем документировать API Битрикс

Стандартное REST API Битрикс24 документировано на портале разработчиков. Но речь об API, разработанном вами: кастомные эндпоинты, собственные модули, интеграционные решения. Без документации:

  • Разработчик-интегратор тратит часы на выяснение формата запросов.
  • Тестировщик не знает, что и как проверять.
  • При ротации команды знания теряются.

OpenAPI решает эту проблему: спецификация — это одновременно документация, контракт и инструмент тестирования.

Формат OpenAPI 3.0: базовая структура

openapi: 3.0.3
info:
  title: My Bitrix API
  version: 1.0.0
  description: Кастомный API 1С-Битрикс для работы с каталогом

servers:
  - url: https://mysite.ru/api/v1
    description: Production

paths:
  /products:
    get:
      summary: Список товаров
      parameters:
        - name: category_id
          in: query
          schema:
            type: integer
        - name: limit
          in: query
          schema:
            type: integer
            default: 20
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductList'
        '401':
          $ref: '#/components/responses/Unauthorized'

Размещение документации на Битрикс

Swagger UI — это статическое web-приложение, которое рендерит OpenAPI-спецификацию в интерактивный интерфейс. Размещение на сайте Битрикс:

  1. Скачать Swagger UI: dist/ папку с GitHub или через npm.
  2. Поместить в /local/swagger/.
  3. Создать файл /local/swagger/openapi.yaml или openapi.json со спецификацией.
  4. Настроить роутинг: /api/docs → отдаёт HTML Swagger UI, который загружает openapi.yaml.
  5. Закрыть доступ к /api/docs для неавторизованных пользователей через .htaccess или middleware.

Файл openapi.yaml можно сгенерировать динамически — PHP-скрипт собирает описания всех зарегистрированных эндпоинтов и отдаёт JSON/YAML. Это удобно, если структура API меняется часто.

Описание авторизации

components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

security:
  - BearerAuth: []

В Swagger UI появятся кнопки «Authorize» — разработчик вводит токен один раз, и все запросы из интерфейса уходят с заголовком Authorization: Bearer {token}.

Схемы данных (components/schemas)

components:
  schemas:
    Product:
      type: object
      properties:
        id:
          type: integer
          example: 1234
        name:
          type: string
          example: "Ноутбук Dell XPS 15"
        price:
          type: number
          format: float
          example: 89990.00
        currency:
          type: string
          enum: [RUB, USD, EUR]
        in_stock:
          type: boolean
      required:
        - id
        - name
        - price

Схемы переиспользуются через $ref — описываете структуру один раз, используете во всех эндпоинтах.

Генерация спецификации из аннотаций (zircote/swagger-php)

Для больших API удобнее описывать эндпоинты в аннотациях прямо в коде:

/**
 * @OA\Get(
 *     path="/products/{id}",
 *     summary="Получить товар по ID",
 *     @OA\Parameter(name="id", in="path", required=true, @OA\Schema(type="integer")),
 *     @OA\Response(response=200, description="Товар найден",
 *         @OA\JsonContent(ref="#/components/schemas/Product")
 *     )
 * )
 */
public function getProduct(int $id): array { ... }

Библиотека zircote/swagger-php сканирует папки с аннотациями и генерирует openapi.json:

composer require zircote/swagger-php
./vendor/bin/openapi /local/api --output /local/swagger/openapi.json

Документация автоматически обновляется вместе с кодом.

Разработка документации для API из 10-20 эндпоинтов — 2-3 дня с учётом настройки Swagger UI и описания схем данных.