Программный интерфейс
/web_api/bug/search
/web_api/bug/search
Страница собрана из снимка JSON Schema в репозитории документации. Снимок обновляется отдельной командой из каталога основного приложения и при сборке сайта не переписывается.
Запрос
main-app://schemas/api_elements/bug/search.request.json
REQUEST /web_api/bug/search
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
filters | array of object | Нет | - |
options | object | Нет | другие поля запрещены |
response | any | Нет | - |
Другие поля верхнего уровня запрещены.
filters[]
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
object | object | Да | другие поля запрещены |
operator | enum | Да | "LIKE", "NOT_LIKE", "EQUAL", "NOT_EQUAL", "GT", "GTE", "LT", "LTE", "IN", "NOT_IN", "IS_NULL", "IS_NOT_NULL" |
value | any | Нет | - |
filters[].object
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
element | string | Да | - |
attribute | string | Да | - |
options
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
limit | integer | Нет | minimum 1 |
order | object | Нет | другие поля запрещены |
add | array of enum | Нет | - |
options.order
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
attribute | enum | Да | "bug_id", "project_id", "team_id", "bug_title", "bug_description", "bug_reproduction_steps", "bug_actual_result", "bug_expected_result", "bug_type", "bug_status", "bug_resolution", "bug_priority", "bug_severity", "reporter_id", "assigned_to", "bug_build_version", "bug_affected_version", "bug_fixed_version", "duplicate_of_id", "created_at", "updated_at", "completed_at" |
direction | enum | Нет | "ASC", "DESC" |
Ответ
main-app://schemas/api_elements/bug/search.response.json
RESPONSE /web_api/bug/search
| Имя | Тип | Обязательное | Ограничение |
|---|---|---|---|
api_code | integer | Да | const 200 |
api_result | array of object | boolean | Да | - |
empty | boolean | Нет | - |
Другие поля верхнего уровня запрещены.
Исходная схема
Файлы ниже скопированы из снимка без изменений. Фрагмент по $ref приведён отдельным блоком, схемы не сливаются.
Запрос: main-app://schemas/api_elements/bug/search.request.json
json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "main-app://schemas/api_elements/bug/search.request.json",
"title": "REQUEST /web_api/bug/search",
"$comment": "Generated from the DB model structure_scheme. Edit the model, then run node fill-from-structure-scheme.mjs.",
"type": "object",
"additionalProperties": false,
"description": "Empty result is api_result false, not []. bug_id GT the last bug_id, with options.order on bug_id ASC, is the next page. Repeat the other filters. There is no offset.",
"properties": {
"filters": {
"type": "array",
"items": {
"type": "object",
"required": [
"object",
"operator"
],
"additionalProperties": false,
"properties": {
"object": {
"type": "object",
"required": [
"element",
"attribute"
],
"additionalProperties": false,
"properties": {
"element": {
"type": "string"
},
"attribute": {
"type": "string",
"description": "Column of this element: bug_id, project_id, team_id, bug_title, bug_description, bug_reproduction_steps, bug_actual_result, bug_expected_result, bug_type, bug_status, bug_resolution, bug_priority, bug_severity, reporter_id, assigned_to, bug_build_version, bug_affected_version, bug_fixed_version, duplicate_of_id, created_at, updated_at, completed_at. A custom property filter uses object.element custom and object.attribute equal to the property key."
}
}
},
"operator": {
"type": "string",
"enum": [
"LIKE",
"NOT_LIKE",
"EQUAL",
"NOT_EQUAL",
"GT",
"GTE",
"LT",
"LTE",
"IN",
"NOT_IN",
"IS_NULL",
"IS_NOT_NULL"
]
},
"value": true
}
}
},
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1
},
"order": {
"type": "object",
"required": [
"attribute"
],
"additionalProperties": false,
"properties": {
"attribute": {
"type": "string",
"enum": [
"bug_id",
"project_id",
"team_id",
"bug_title",
"bug_description",
"bug_reproduction_steps",
"bug_actual_result",
"bug_expected_result",
"bug_type",
"bug_status",
"bug_resolution",
"bug_priority",
"bug_severity",
"reporter_id",
"assigned_to",
"bug_build_version",
"bug_affected_version",
"bug_fixed_version",
"duplicate_of_id",
"created_at",
"updated_at",
"completed_at"
]
},
"direction": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"add": {
"type": "array",
"items": {
"type": "string",
"enum": [
"custom_properties",
"projects",
"tags"
]
}
}
}
},
"response": true
}
}Ответ: main-app://schemas/api_elements/bug/search.response.json
json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "main-app://schemas/api_elements/bug/search.response.json",
"title": "RESPONSE /web_api/bug/search",
"$comment": "Generated from the DB model structure_scheme. Edit the model, then run node fill-from-structure-scheme.mjs.",
"allOf": [
{
"$ref": "main-app://schemas/_shared/envelope-success.json"
},
{
"type": "object",
"properties": {
"api_result": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "main-app://schemas/api_elements/bug/row.json"
}
},
{
"const": false
}
]
}
}
}
]
}Фрагмент: 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/api_elements/bug/row.json
json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "main-app://schemas/api_elements/bug/row.json",
"title": "Row bug",
"$comment": "Generated from the DB model structure_scheme. Edit the model, then run node fill-from-structure-scheme.mjs.",
"type": "object",
"additionalProperties": true,
"properties": {
"bug_id": {
"type": "integer",
"minimum": 0
},
"project_id": {
"type": "integer",
"minimum": 0
},
"team_id": {
"type": "integer",
"minimum": 0
},
"bug_title": {
"type": "string",
"maxLength": 500
},
"bug_description": {
"type": "string",
"maxLength": 2500,
"description": "HTML subset b, i, p, a, strong, ul, ol, li"
},
"bug_reproduction_steps": {
"type": "string",
"maxLength": 2500,
"description": "HTML subset b, i, p, a, strong, ul, ol, li"
},
"bug_actual_result": {
"type": "string",
"maxLength": 2500,
"description": "HTML subset b, i, p, a, strong, ul, ol, li"
},
"bug_expected_result": {
"type": "string",
"maxLength": 2500,
"description": "HTML subset b, i, p, a, strong, ul, ol, li"
},
"bug_type": {
"type": "string",
"enum": [
"BUG",
"REGRESSION",
"PERFORMANCE",
"SECURITY",
"USABILITY",
"COMPATIBILITY",
"DOCUMENTATION",
"OTHER"
]
},
"bug_status": {
"type": "string",
"enum": [
"OPEN",
"TRIAGE",
"IN_PROGRESS",
"ON_HOLD",
"RESOLVED",
"CLOSED",
"REOPENED"
]
},
"bug_resolution": {
"type": "string",
"enum": [
"FIXED",
"WONT_FIX",
"DUPLICATE",
"CANNOT_REPRODUCE",
"WORKS_AS_DESIGNED",
"DEFERRED",
"NOT_A_BUG"
]
},
"bug_priority": {
"type": "string",
"enum": [
"CRITICAL",
"HIGH",
"NORMAL",
"LOW"
]
},
"bug_severity": {
"type": "string",
"enum": [
"BLOCKER",
"CRITICAL",
"MAJOR",
"MINOR",
"TRIVIAL"
]
},
"reporter_id": {
"type": [
"integer",
"null"
]
},
"assigned_to": {
"type": [
"integer",
"null"
]
},
"bug_build_version": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"bug_affected_version": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"bug_fixed_version": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"duplicate_of_id": {
"type": "integer",
"minimum": 0
},
"created_at": {
"type": "string",
"description": "timestamp Y-m-d H:i:s"
},
"updated_at": {
"type": "string",
"description": "timestamp Y-m-d H:i:s"
},
"completed_at": {
"type": "string",
"description": "timestamp Y-m-d H:i:s"
}
}
}Страница не помогла?