Таблица [app.func.<id>.input.<name>] описывает один аргумент метода. Из неё client строит сигнатуру функции, runtime-валидацию и более узкие Python-типы.
| Ключ | Что делает | Как влияет на поведение |
|---|---|---|
type |
Тип аргумента | Формирует аннотацию метода и runtime-валидацию. Поддерживаются примитивы, списки и объединения через массивы типов. |
description |
Описание аргумента | Используется в docstring-ах и подсказках. |
@Required |
Делает аргумент обязательным | Убирает None из сигнатуры и заставляет client проверять наличие аргумента. |
default |
Значение по умолчанию | Подставляется, если caller не передал аргумент. Если default задан, сигнатура использует это значение как fallback. |
values |
Набор допустимых значений | Ограничивает аргумент по enum-like списку. В сочетании без match может сузить Python-тип до Literal[...]. |
from |
Связующий источник значения | Служит для downstream-связок и tooling; сам по себе не меняет сигнатуру, но может участвовать в контрактных преобразованиях. |
match |
Дополнительная проверка | Ограничивает аргумент диапазоном чисел, regex-ссылкой или whitelist-значениями. |
Поддерживаемые формы:
stringintegerbooleanarrayobjectnulllist[string],list[integer]и т.п.- объединения через массив типов, например
[string, null]
typeопределяет Python-аннотацию параметра.list[...]включает проверку каждого элемента списка.nullделает значение nullable в generated type.
default определяет значение, которое method-argument получит, если caller не передал его явно.
Практически это значит:
- argument становится удобнее вызывать;
- в сигнатуре появляется default-value;
- runtime не требует
None, если default уже подставлен.
Эти ключи решают разные задачи:
valuesзадаёт перечислимый набор допустимых значений;matchзадаёт общую проверку формата или диапазона.
valuesиmatchне должны сосуществовать в одном input-табле.- Если
valuesесть иmatchнет, тип может сузиться доLiteral[...]. - Для списочных input-ов тип может стать
list[Literal[...]], если whitelist задан безmatch.
from полезен, когда input участвует в более сложной контрактной связке:
- его можно переиспользовать в
url.params,bodyи других вычисляемых местах; - tooling может использовать его как связующую подсказку;
- сам метод не меняет поведение только из-за
from, но контрактная модель становится богаче и точнее.