Таблица [app.func.<id>] описывает одну публичную функцию API. Это основная единица языка: из неё client строит метод, его сигнатуру, транспорт и место в дереве классов.
| Ключ | Что делает | Как влияет на поведение |
|---|---|---|
name |
Публичное имя метода | Становится именем async-метода в client. Значение должно быть статическим; если его не указать, имя метода совпадает с идентификатором таблицы. |
transport |
Способ выполнения | Управляет тем, как именно будет отправляться запрос: direct, fetch или goto. Если ключ не задан, функция ведёт себя как fetch. |
method |
HTTP-метод | Определяет HTTP-verb запроса. Для direct и fetch метод используется как есть; для goto он запрещён. Если ключ не задан, значение по умолчанию GET. |
group |
Ссылка на группу | Помещает функцию в нужный namespace client и определяет, под каким классом она будет доступна. Если ключ не задан, функция остаётся на root-уровне. |
description |
Описание функции | Используется как docstring у сгенерированного метода и как подсказка в документации. |
Допустимые значения:
directfetchgoto
directиспользует_direct_request: это прямой HTTP-GET через retry-клиент, без page-flow.fetchиспользует browser-backed_request: запрос идёт через браузерный контекст и наследует referrer/CORS/credentials/headers.gotoоткрывает отдельную страницу, навигирует по URL и затем передаёт результат extractor-у.
method принимает один из HTTP-verb-ов:
GETPOSTPUTPATCHDELETEHEADOPTIONS
- Если
transport="goto",methodнельзя задавать. - Если
transport="direct"илиtransport="fetch",methodнужен, чтобы generated client знал, какой verb отправлять. transportиmethodлучше задавать явно, чтобы контракт был однозначным.
group связывает функцию с [app.groups.*].
Это влияет на:
- место функции в дереве классов;
- структуру generated package;
- удобство навигации в IDE и в документации;
- то, какой
group-class будет держать метод как атрибут.
Описание функции не влияет на runtime, но влияет на читаемость клиентского кода:
- попадает в docstring метода;
- помогает IDE показывать смысл метода;
- делает generated docs заметно полезнее.