Документування API (Redoc) для веб-застосунку

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Документування API (Redoc) для веб-застосунку
Проста
~1 робочий день
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Документація API (Redoc) для веб-застосунку

Redoc — це OpenAPI-рендерер з трипанельним макетом: навігація зліва, опис в центрі, приклади запитів/відповідей справа. На відміну від Swagger UI, Redoc не забезпечує інтерактивну форму «Спробувати», але генерує читабельну публічну документацію навіть для великих API з сотнями ендпоїнтів.

Вбудовування Redoc

Найпростіший спосіб — статичний HTML з CDN:

<!DOCTYPE html>
<html>
  <head>
    <title>API Документація</title>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
  </head>
  <body>
    <redoc spec-url='/api/openapi.yaml'></redoc>
    <script src="https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js"></script>
  </body>
</html>

Для production — завантажити бандл та розповсюджувати локально. CDN створює залежність від зовнішної мережі.

Самостійне розміщення через npm

npm install redoc

Інтеграція з Next.js (статичний маршрут /docs):

// app/docs/page.tsx
import { RedocStandalone } from 'redoc';

export default function DocsPage() {
  return (
    <RedocStandalone
      specUrl="/api/openapi.json"
      options={{
        nativeScrollbars: true,
        theme: {
          colors: { primary: { main: '#2563eb' } },
          typography: { fontFamily: 'Inter, sans-serif' },
        },
        hideDownloadButton: false,
        expandDefaultServerVariables: true,
      }}
    />
  );
}

Конфігурація через x-tagGroups

Redoc підтримує групування тегів через розширення OpenAPI, відображаючи їх як розділи в лівому меню:

info:
  title: MyApp API

x-tagGroups:
  - name: Користувачі
    tags: [Users, Auth, Sessions]
  - name: Контент
    tags: [Articles, Comments, Tags]
  - name: Платежі
    tags: [Orders, Payments, Refunds]

tags:
  - name: Articles
    description: |
      Операції з публікаціями.

      ## Життєвий цикл статті

      `draft` → `review` → `published` → `archived`

Опис тегів підтримує повний Markdown — можна додавати схеми, таблиці, посилання.

x-codeSamples — Приклади коду кількома мовами

paths:
  /articles:
    get:
      x-codeSamples:
        - lang: cURL
          source: |
            curl -X GET https://api.example.com/v1/articles \
              -H 'Authorization: Bearer TOKEN'
        - lang: JavaScript
          source: |
            const res = await fetch('/api/v1/articles', {
              headers: { Authorization: `Bearer ${token}` }
            });
        - lang: PHP
          source: |
            $response = Http::withToken($token)->get('/api/v1/articles');

Redoc показує перемикач мов у правій панелі.

Генерування openapi.json у Laravel

// routes/api.php — ендпоїнт повертає специфікацію
Route::get('/openapi.json', function () {
    return response()->json(
        \Dedoc\Scramble\Scramble::getDefaultDocumentGenerator()->generate()
    );
})->middleware('throttle:60,1');

Альтернатива — експортувати статичний файл у CI:

php artisan scramble:export --output=public/openapi.json

Redoc CLI для статичної генерації

npx @redocly/cli build-docs openapi.yaml --output docs/index.html

Отриманий index.html (~3 МБ з вбудованим бандлом) розгортається на будь-якому статичному хостингу (S3, GitHub Pages, Cloudflare Pages). Не потребує сервера.

Redoc vs Swagger UI — Коли вибирати

Критерій Redoc Swagger UI
Якість візуалізації Висока Середня
«Спробувати в браузері» Ні (тільки перегляд) Так
Розмір бандлу ~2.5 МБ ~1.5 МБ
Групування тегів x-tagGroups Ні
Підтримка x-codeSamples Так Ні
Інтеграція в Next.js/React npm-пакет npm-пакет

Оптимальна стратегія: публічна документація — Redoc, внутрішній sandbox для розробників — Swagger UI на окремому маршруті /api/swagger.

Терміни

Налаштування Redoc з пользувацькою темою, групуванням тегів та прикладами коду: 0.5–1 день. Інтеграція з CI (автоекспорт openapi.json, розгортання на Cloudflare Pages): 1 додатковий день.