我想用 Python 创建一个“Echo”API。这将是一个 API,它将返回到达服务器的请求的所有详细信息,但采用有组织的数据结构(如 JSON)。例如,如果像这样调用:
GET https://subdom.dom.com:9997/api/rest/resource/item?name=John
API 将返回如下 JSON
{
"method" : "GET",
"schema" : "https",
"hostname" : "subdom.dom.com",
"port" : "9997",
"basepath" : "/api/rest",
"resource" : "/resource/item",
"params" : {
"name" : "John",
},
"headers" : {
"x-client-ip" : "123.234.234.123",
},
...
}
Flask、FastAPI 和其他类似的框架不是一个好的答案,因为我不想为任何可能被调用的资源创建路由条目,所以它必须消化“/”后面的任何内容。 (如果可能的话,对方法也应该做同样的事情:接受所有)。
因此它应该是最不显式的 API,我知道这不是一个好的编程实践,但它将用作我的项目的测试框架,确保我的 API 管理服务在任何更新之前和之后都能完美运行) .
你可以用 Flask 本身做一件事(我知道你拒绝了 Flask 和 FastAPI),但我认为你应该尝试一下。
flask中有一个装饰器
after_request
,每次请求后都会执行该装饰器
Flask 首先会获取请求,找到端点,执行端点函数,然后执行用
after_request
装饰器装饰的函数。这个修饰函数通常用于后处理响应代码(例如,您想向每个响应添加标头,然后将其添加到此处,而不是在每个端点中都编写它)。
在这里,您可以将所有这些数据(如路径、pathParams、queryParams、标头、requestMethod 等)添加到每个请求的响应中。
我希望这会起作用。!