Files
ldap-auth-service/public/help.html
2026-08-24 17:46:07 +05:00

149 lines
7.5 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Справка по API — каталог пользователей</title>
<link rel="stylesheet" href="/css/app.css">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<style>
.help-card { max-width: 820px; }
.help-card h2 { margin-bottom: 4px; }
.help-card .subtitle { margin-bottom: 24px; }
.help-section { margin-top: 24px; }
.help-section h3 { font-size: 16px; color: var(--text); margin-bottom: 10px; }
.help-section p, .help-section li { color: var(--text-2); font-size: 14px; line-height: 1.6; }
.help-section ol, .help-section ul { padding-left: 20px; margin: 8px 0; }
.help-section li { margin: 4px 0; }
code {
background: var(--surface-2);
border: 1px solid var(--border);
border-radius: 6px;
padding: 1px 6px;
font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
font-size: 12.5px;
color: var(--accent-hover);
}
.code-block {
background: #0f172a; color: #cbd5e1;
border-radius: var(--radius-sm);
padding: 14px 16px;
font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
font-size: 12.5px;
overflow-x: auto;
white-space: pre;
margin: 10px 0;
line-height: 1.6;
}
.code-block .c { color: #64748b; }
table.spec { margin-top: 10px; }
table.spec th, table.spec td { font-size: 13px; }
.endpoint {
background: var(--accent-soft);
border: 1px solid var(--accent-soft-2);
border-radius: var(--radius-sm);
padding: 10px 14px;
font-family: ui-monospace, Consolas, monospace;
font-size: 14px;
color: var(--accent-hover);
font-weight: 600;
display: inline-block;
margin: 6px 0;
}
.back-link { margin-top: 28px; text-align: center; }
</style>
</head>
<body>
<div class="page-wrap">
<div class="card help-card">
<h2>Справка по API</h2>
<p class="subtitle">Каталог пользователей Active Directory</p>
<div class="help-section">
<h3>Что это</h3>
<p>Сервис предоставляет HTTP-API для получения списка пользователей домена: ФИО, должность, телефон, логин и почта. Поле «Должность» хранится в Active Directory в атрибуте <code>description</code> (Описание).</p>
</div>
<div class="help-section">
<h3>1. Получите ключ</h3>
<ol>
<li>Откройте <a href="/admin">панель администратора</a>.</li>
<li>В блоке «Настройки» найдите поле <strong>API-ключ для каталога</strong>.</li>
<li>Нажмите <strong>«Новый ключ»</strong> — будет сгенерирован новый ключ (старый перестанет работать).</li>
<li>Скопируйте ключ кнопкой <strong>«Копировать»</strong>.</li>
</ol>
<p>Ключ показывается только в админке и хранится в настройках сервиса. Храните его в секрете.</p>
</div>
<div class="help-section">
<h3>2. Эндпоинт</h3>
<div class="endpoint">GET /api/directory/users</div>
<p>Ключ передаётся в заголовке <code>X-API-Key</code> или параметром <code>?api_key=</code>.</p>
<h3>Примеры запросов</h3>
<div class="code-block"># Заголовком (Linux / macOS / Git Bash)
curl -H "X-API-Key: ВАШ_КЛЮЧ" \
https://ВАШ_СЕРВЕР/api/directory/users
<span class="c"># Параметром</span>
curl "https://ВАШ_СЕРВЕР/api/directory/users?api_key=ВАШ_КЛЮЧ"
<span class="c"># PowerShell (Windows)</span>
$headers = @{ "X-API-Key" = "ВАШ_КЛЮЧ" }
Invoke-RestMethod -Uri "https://ВАШ_СЕРВЕР/api/directory/users" -Headers $headers</div>
</div>
<div class="help-section">
<h3>3. Формат ответа</h3>
<p>Успешный ответ — JSON со списком пользователей:</p>
<div class="code-block">{
"success": true,
"count": 2,
"users": [
{
"login": "ivanov.i",
"fio": "Иванов Иван Иванович",
"position": "Учитель информатики",
"phone": "+79161234567",
"email": "ivanov.i@school25.ru"
}
]
}</div>
<p>Если поля нет (не заполнено) — возвращается пустая строка.</p>
<h3>Коды ошибок</h3>
<table class="spec table-wrap">
<thead>
<tr><th>Код</th><th>Значение</th></tr>
</thead>
<tbody>
<tr><td data-label="Код">200</td><td data-label="Значение">Успех</td></tr>
<tr><td data-label="Код">401</td><td data-label="Значение">Неверный или отсутствующий API-ключ</td></tr>
<tr><td data-label="Код">503</td><td data-label="Значение">Ключ не настроен (сгенерируйте его в админке)</td></tr>
<tr><td data-label="Код">500</td><td data-label="Значение">Ошибка сервера или недоступен LDAP</td></tr>
</tbody>
</table>
</div>
<div class="help-section">
<h3>4. Описание полей</h3>
<table class="spec table-wrap">
<thead>
<tr><th>Поле</th><th>Описание</th><th>Атрибут AD</th></tr>
</thead>
<tbody>
<tr><td data-label="Поле"><code>login</code></td><td data-label="Описание">Логин (sAMAccountName)</td><td data-label="Атрибут AD"><code>sAMAccountName</code></td></tr>
<tr><td data-label="Поле"><code>fio</code></td><td data-label="Описание">ФИО</td><td data-label="Атрибут AD"><code>displayName</code></td></tr>
<tr><td data-label="Поле"><code>position</code></td><td data-label="Описание">Должность</td><td data-label="Атрибут AD"><code>description</code></td></tr>
<tr><td data-label="Поле"><code>phone</code></td><td data-label="Описание">Телефон</td><td data-label="Атрибут AD"><code>telephoneNumber</code></td></tr>
<tr><td data-label="Поле"><code>email</code></td><td data-label="Описание">Электронная почта</td><td data-label="Атрибут AD"><code>mail</code></td></tr>
</tbody>
</table>
</div>
<div class="back-link"><a href="/">На главную</a> · <a href="/auth">Вход</a> · <a href="/register">Регистрация</a></div>
</div>
</div>
</body>
</html>