Методы

Модуль содержит примеры запросов и ответов на них, параметров которые могут входить в запрос, в сервисе methods.

class methods_api_crud_svc.MethodReadResult(*, data: list[OneMethodInReadResult])
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'data': FieldInfo(annotation=list[OneMethodInReadResult], required=True, title='Список узлов')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class methods_api_crud_svc.MethodUpdateAttributes(*, cn: str = None, description: str | None = None, prsJsonConfigString: dict | None = None, prsActive: bool = True, prsDefault: bool | None = None, prsEntityTypeCode: int | None = None, prsIndex: int | None = None, prsMethodAddress: str | None = None)
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'cn': FieldInfo(annotation=str, required=False, title='Имя узла'), 'description': FieldInfo(annotation=Union[str, NoneType], required=False, title='Описание', description='Описание экземпляра.'), 'prsActive': FieldInfo(annotation=bool, required=False, default=True, title='Флаг активности.', description="Определяет, активен ли экземпляр. Применяется, к примеру, для временного 'выключения' экземпляра на время, пока он ещё недонастроен."), 'prsDefault': FieldInfo(annotation=Union[bool, NoneType], required=False, title='Сущность по умолчанию.', description='Если = ``true``\\, то данный экземпляр считается узлом по умолчанию в списке равноправных узлов данного уровня иерархии.'), 'prsEntityTypeCode': FieldInfo(annotation=Union[int, NoneType], required=False, title='Тип узла.', description='Атрибут используется для определения типа. К примеру, хранилища данных могут быть разных типов.'), 'prsIndex': FieldInfo(annotation=Union[int, NoneType], required=False, title='Индекс узла.', description='Если у узлов одного уровня иерархии проставлены индексы, то перед отдачей клиенту списка экземпляров они сортируются в соответствии с их индексами.'), 'prsJsonConfigString': FieldInfo(annotation=Union[dict, NoneType], required=False, title='Конфигурация экземпляра.', description='Строка содержит, в случае необходимости, конфигурацию узла. Интерпретируется сервисом, управляющим сущностью, которой принадлежит экземпляр.'), 'prsMethodAddress': FieldInfo(annotation=Union[str, NoneType], required=False)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class methods_api_crud_svc.OneMethodInReadResult(*, id: str, parentId: str | None = None, attributes: dict, children: list[dict] | None = None, initiatedBy: str | list[str] = [], parameters: List[dict] = [])
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'attributes': FieldInfo(annotation=dict, required=True, title='Атрибуты метода', json_schema_extra={'required': True}), 'children': FieldInfo(annotation=Union[list[dict], NoneType], required=False, title='Список дочерних узлов'), 'id': FieldInfo(annotation=str, required=True, title='Id узла.'), 'initiatedBy': FieldInfo(annotation=Union[str, list[str]], required=False, default=[], title='Список id экземпляров сущностей, инициирующих вычисление тега.'), 'parameters': FieldInfo(annotation=List[dict], required=False, default=[], title='Параметры метода.', description=('При создании параметров метода они должны быть пронумерованы ', помощью атрибута prsIndex. В противном случае параметры ', 'будут переданы в вычислительный метод в случайном порядке.')), 'parentId': FieldInfo(annotation=Union[str, NoneType], required=False, title='Id родительского узла.')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

async methods_api_crud_svc.create(payload: MethodCreate, error_handler: ErrorHandler = Depends(ErrorHandler))

Метод добавляет метод в иерархию.

Запрос:

http

POST /v1/methods/ HTTP/1.1
Host: localhost
Accept: application/json
Content-Type: application/json
Authorization: No Auth

{
    "initiatedBy": "id of a node which initiates method",
    "attributes": {
        "prsMethodAddress":"method_adress",
        "prsEntityTypeCode":0,
        "cn":"method1",
        "description":"method1_description",
        "prsJsonConfigString":"method1_config_string",
        "prsActive":true
    },
    "parameters":[
        {
            "attributes":{
                "cn":"param1",
                "description":"param1_description",
                "prsJsonConfigString":"config_string1",
                "prsActive":true
            }
        },
        {
            "attributes":{
                "cn":"param2",
                "description":"param2_description",
                "prsJsonConfigString":"config_string2",
                "prsActive":true
            }
        }
    ],
    "parentId":"id of a node to which method adjasted"
}

response

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-type: application/json

{
    "id": "new method id"
}
  • parentId (str) - Id родительского узла. Обязательное поле.

  • initiatedBy (str | list[str]) - Список id экземпляров сущностей, инициирующих вычисление тега. Необязательный атрибут.

  • attributes (dict) - Атрибуты метода. Обязательное поле. Включает в себя:

    • prsMethodAddress (str) - Адрес метода. Обязательное поле.

    • prsEntityTypeCode (int) - Тип метода. Необязательное поле.

  • parameters (List[MethodParameter]) - Параметры метода. Необязательное поле.

    • MethodParameter - Включает в себя:

      • attributes (dict) - Атрибуты узла. Необязательное поле.

        • cn (str) - имя тега. Необязательный атрибут.

        • description (str) - описание экземпляра. Необязательный атрибут.

        • prsJsonConfigString (str) - Строка содержит, в случае необходимости,

          конфигурацию узла. Интерпретируется сервисом, управляющим сущностью, которой принадлежит экземпляр. Необязательный аттрибут

        • prsActive (bool) - Определяет, активен ли экземпляр. Необязательный атрибут.

        • prsDefault (bool) - Если = True, то данный экземпляр. Необязательный атрибут.

          считаеться узлом по умолчанию в списке равноправных узлов данного уровня иерархии. Необязательный атрибут.

        • prsIndex (int) - Если у узлов одного уровня иерархии проставлены индексы, то

          перед отдачей клиенту списка экземпляров они сортируются соответственно их индексам. Необязательный атрибут.

Ответ:

  • id (uuid) - id созданного тега

  • detail (str) - пояснения к ошибке