DynamicRootAPI

class deepfos.api.base.DynamicRootAPI(version: Optional[Union[float, str]] = None, header: Optional[dict] = None, sync: bool = <object object>, module_id: Optional[str] = None, lazy: bool = False)

动态API基类。 所有 非固定url 的API应该继承这个类

实际案例

class ExampleAPI(DynamicRootAPI):
    module_type = 'EXAMPLE'

    @get('/test')
    def test(self):
        return {}

对于上述api,存在2种初始化方法。

api = ExampleAPI(version='1.0', sync=True)
api = await ExampleAPI(version='1.0', sync=False)

当sync=False时,必须使用await初始化。 以这种方式初始化的api,必须使用await调用,即:

await api.test()

以sync=True初始化的api,可以同步调用,即:

api.test()

方法

collect_endpoints()

收集当前 API 类暴露的所有相对 endpoint

prefix()

resolve_cls(sync, sync_base, async_base[, extra])

根据同步/异步模式生成实际可实例化的 API 类

resolve_version_cls(sync, sync_base, async_base)

为多版本动态 API 解析指定版本对应的运行期类

属性

api_version

builtin

cls_name

default_version

endpoint

module_name

module_type

multi_version

server_name

url_need_format