Bridge

默认响应

框架根据最终返回值的类型,包装成HTTP响应返回给前端.具体逻辑是:

Bridge

框架各个子系统之间的类型转换,都被称为bridge。

如果需要自定义JSON序列化方法,可以调用Application.add_json_bridge(bridge_func),引入自定义的bridge函数。

bridge函数只有一个任意类型的输入参数,其返回值类型必须能默认被JSON序列化。如果返回为None,则继续调用后面的bridge函数。

示例

from lessweb import Application
from decimal import Decimal

class User:
    name: str
    score: Decimal

def add_user(user: User, /):
    return user

def response_bridge(obj):
    if isinstance(obj, Decimal):
        return str(obj)

app = Application()
app.add_json_bridge(response_bridge)
app.add_post_mapping('/user', dealer=add_user)
app.run()

请求: curl -X POST -d "name=John&score=0.618" "http://localhost:8080/user"
返回: {"name": "John", "score": "0.618"}