Программный интерфейс

/web_api/test_run_result/search

/web_api/test_run_result/search ​

Страница собрана из снимка JSON Schema в репозитории документации. Снимок обновляется отдельной командой из каталога основного приложения и при сборке сайта не переписывается.

Запрос ​

main-app://schemas/api_elements/test_run_result/search.request.json

REQUEST /web_api/test_run_result/search

ИмяТипОбязательноеОграничение
filtersarray of objectНет-
optionsobjectНетдругие поля запрещены
responseanyНет-

Другие поля верхнего уровня запрещены.

filters[] ​

ИмяТипОбязательноеОграничение
objectobjectДадругие поля запрещены
operatorenumДа"LIKE", "NOT_LIKE", "EQUAL", "NOT_EQUAL", "GT", "GTE", "LT", "LTE", "IN", "NOT_IN", "IS_NULL", "IS_NOT_NULL"
valueanyНет-

filters[].object ​

ИмяТипОбязательноеОграничение
elementstringДа-
attributestringДа-

options ​

ИмяТипОбязательноеОграничение
limitintegerНетminimum 1
orderobjectНетдругие поля запрещены
addarray of enumНет-

options.order ​

ИмяТипОбязательноеОграничение
attributeenumДа"test_run_result_id", "test_case_id", "test_run_id", "test_result_status", "test_result_description", "project_id", "team_id", "assigned_to", "created_at", "updated_at", "completed_at"
directionenumНет"ASC", "DESC"

Ответ ​

main-app://schemas/api_elements/test_run_result/search.response.json

RESPONSE /web_api/test_run_result/search

ИмяТипОбязательноеОграничение
api_codeintegerДаconst 200
api_resultarray of object | booleanДа-
emptybooleanНет-

Другие поля верхнего уровня запрещены.

Исходная схема ​

Файлы ниже скопированы из снимка без изменений. Фрагмент по $ref приведён отдельным блоком, схемы не сливаются.

Запрос: main-app://schemas/api_elements/test_run_result/search.request.json
json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "main-app://schemas/api_elements/test_run_result/search.request.json",
  "title": "REQUEST /web_api/test_run_result/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 []. test_run_result_id GT the last test_run_result_id, with options.order on test_run_result_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: test_run_result_id, test_case_id, test_run_id, test_result_status, test_result_description, project_id, team_id, assigned_to, 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": [
                "test_run_result_id",
                "test_case_id",
                "test_run_id",
                "test_result_status",
                "test_result_description",
                "project_id",
                "team_id",
                "assigned_to",
                "created_at",
                "updated_at",
                "completed_at"
              ]
            },
            "direction": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        },
        "add": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "custom_properties",
              "projects",
              "tags",
              "test_cases"
            ]
          }
        }
      }
    },
    "response": true
  }
}
Ответ: main-app://schemas/api_elements/test_run_result/search.response.json
json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "main-app://schemas/api_elements/test_run_result/search.response.json",
  "title": "RESPONSE /web_api/test_run_result/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/test_run_result/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/test_run_result/row.json
json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "main-app://schemas/api_elements/test_run_result/row.json",
  "title": "Row test_run_result",
  "$comment": "Generated from the DB model structure_scheme. Edit the model, then run node fill-from-structure-scheme.mjs.",
  "type": "object",
  "additionalProperties": true,
  "properties": {
    "test_run_result_id": {
      "type": "integer",
      "minimum": 0
    },
    "test_case_id": {
      "type": "integer",
      "minimum": 0
    },
    "test_run_id": {
      "type": "integer",
      "minimum": 0
    },
    "test_result_status": {
      "type": "string",
      "enum": [
        "PENDING",
        "PASSED",
        "FAILED",
        "SKIPPED",
        "BLOCKED",
        "RETEST"
      ]
    },
    "test_result_description": {
      "type": "string",
      "maxLength": 3500,
      "description": "HTML subset b, i, p, a, strong, ul, ol, li"
    },
    "project_id": {
      "type": "integer",
      "minimum": 0
    },
    "team_id": {
      "type": "integer",
      "minimum": 0
    },
    "assigned_to": {
      "type": [
        "integer",
        "null"
      ]
    },
    "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"
    }
  }
}

Версия 1.0.0 · Последнее изменение 2026-10-07

Страница не помогла?