Программный интерфейс
/web_api/auth/register
/web_api/auth/register
Страница собрана из снимка JSON Schema в репозитории документации. Снимок обновляется отдельной командой из каталога основного приложения и при сборке сайта не переписывается.
Запрос
main-app://schemas/api_auth/register.request.json
POST /web_api/auth/register body
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
email | string | Да | minLength 1 |
password | string | Да | minLength 8 |
first_name | string | Да | maxLength 255 |
last_name | string | Да | maxLength 255 |
device | string | Нет | maxLength 255 |
Другие поля верхнего уровня запрещены.
Ответ
main-app://schemas/api_auth/register.response.json
POST /web_api/auth/register success
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
api_code | integer | Да | const 200 |
api_result | object | Да | другие поля запрещены |
empty | boolean | Нет | - |
Другие поля верхнего уровня запрещены.
api_result
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
access_token | string | Да | minLength 1 |
token_type | string | Да | const "Bearer" |
expires_in_days | integer | Да | minimum 1 |
user | object | Да | другие поля запрещены |
api_result.user
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
id | integer | Да | minimum 1 |
email | string | Да | minLength 1 |
first_name | string | Да | - |
last_name | string | Да | - |
Исходная схема
Файлы ниже скопированы из снимка без изменений. Фрагмент по $ref приведён отдельным блоком, схемы не сливаются.
Запрос: main-app://schemas/api_auth/register.request.json
json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "main-app://schemas/api_auth/register.request.json",
"title": "POST /web_api/auth/register body",
"type": "object",
"required": ["email", "password", "first_name", "last_name"],
"additionalProperties": false,
"properties": {
"email": { "type": "string", "minLength": 1 },
"password": { "type": "string", "minLength": 8 },
"first_name": { "type": "string", "maxLength": 255 },
"last_name": { "type": "string", "maxLength": 255 },
"device": { "type": "string", "maxLength": 255 }
}
}Ответ: main-app://schemas/api_auth/register.response.json
json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "main-app://schemas/api_auth/register.response.json",
"title": "POST /web_api/auth/register success",
"allOf": [
{ "$ref": "main-app://schemas/_shared/envelope-success.json" },
{
"type": "object",
"properties": {
"api_result": { "$ref": "main-app://schemas/_shared/auth-token-result.json" }
}
}
]
}Фрагмент: main-app://schemas/_shared/envelope-success.json
json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "main-app://schemas/_shared/envelope-success.json",
"title": "Canonical success envelope",
"type": "object",
"required": ["api_code", "api_result"],
"properties": {
"api_code": { "const": 200 },
"api_result": true,
"empty": { "type": "boolean" }
},
"additionalProperties": false
}Фрагмент: main-app://schemas/_shared/auth-token-result.json
json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "main-app://schemas/_shared/auth-token-result.json",
"title": "api_result of /web_api/auth/login and /web_api/auth/register",
"type": "object",
"required": ["access_token", "token_type", "expires_in_days", "user"],
"additionalProperties": false,
"properties": {
"access_token": { "type": "string", "minLength": 1 },
"token_type": { "const": "Bearer" },
"expires_in_days": { "type": "integer", "minimum": 1 },
"user": { "$ref": "main-app://schemas/_shared/auth-user.json" }
}
}Фрагмент: main-app://schemas/_shared/auth-user.json
json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "main-app://schemas/_shared/auth-user.json",
"title": "User object in /web_api/auth responses",
"type": "object",
"required": ["id", "email", "first_name", "last_name"],
"additionalProperties": false,
"properties": {
"id": { "type": "integer", "minimum": 1 },
"email": { "type": "string", "minLength": 1 },
"first_name": { "type": "string" },
"last_name": { "type": "string" }
}
}Страница не помогла?