Python 中的“Echo”API

问题描述 投票:0回答:1

我想用 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 管理服务在任何更新之前和之后都能完美运行) .

python rest mocking frameworks
1个回答
1
投票

你可以用 Flask 本身做一件事(我知道你拒绝了 Flask 和 FastAPI),但我认为你应该尝试一下。

flask中有一个装饰器

after_request
,每次请求后都会执行该装饰器

Flask 首先会获取请求,找到端点,执行端点函数,然后执行用

after_request
装饰器装饰的函数。这个修饰函数通常用于后处理响应代码(例如,您想向每个响应添加标头,然后将其添加到此处,而不是在每个端点中都编写它)。

在这里,您可以将所有这些数据(如路径、pathParams、queryParams、标头、requestMethod 等)添加到每个请求的响应中。

我希望这会起作用。!

© www.soinside.com 2019 - 2024. All rights reserved.