ese774_frame.models package

Submodules

ese774_frame.models.api_spec module

Kengo NAKADA: https://github.com/shimane-dev, https://github.com/kengo-nakada kengo.nakada@mat.shimane-u.ac.jp, kengo.nakada@gmail.com

class ese774_frame.models.api_spec.ApiSpec(request_model: Type[BaseModel] | None, response_model: Any | None, name: str, object_name: str = 'cobotta', function_name: str = None, path: str | None = None, method: str = 'post', description: str = '', summary: str | None = '', kind: Literal['method', 'property'] = 'method', writable: bool = False)[ソース]

ベースクラス: object

1 API エントリの定義。

request_model:

サーバ入力の Pydantic モデル(None 可)

response_model:

サーバ出力の Pydantic モデル or typing 型(None 可)

kind:

"method" または "property"。既定値は "method"。 既存 ApiSpec との後方互換性を維持する。

writable:

kind="property" の場合にクライアント側 setter を許可するか。

decode_response():

クライアント側で JSON payload を response_model に従って復元し、 最終的にプレーン Python 値へ正規化する。

decode_response(payload: Any) → Any[ソース]

response_model に基づいて payload を復元し、プレーン Python を返す。

復元順序: 1) BaseModel (v2/v1) で検証・復元 2) 単一フィールド model は値をアンラップ 3) TypeAdapter / parse_obj_as を試行 4) 最後に payload をそのまま _to_plain

description: str = ''
function_name: str = None
kind: Literal['method', 'property'] = 'method'
method: str = 'post'
name: str
object_name: str = 'cobotta'
path: str | None = None
request_model: Type[BaseModel] | None
response_model: Any | None
summary: str | None = ''
writable: bool = False