微控制器上webserver的极简核
userv的Python项目详细描述
捕捉
每个web服务器的第一步是路由和解析html。 这是核心。
布线
路由器对象很简单,是服务器实例的输入。 示例:
from userv.routing import Router, text_response router = Router() def test(request): return text_response("some text") router.add("/resturl", test, method="GET")
您可以使用:
router.get('/resturl', method="GET")
对于创建swagger等,还有一个list命令:
router.list()
在一个地方有这些路线,即使没有 服务器实例。
响应类型
有一些内置响应类型文本、json和静态文件。
响应函数的一般要点是创建一个生成器 将被服务器使用。
如果你想完全控制你的内存流或者需要写一些 渴望记忆的回应可以自己写一个回应。
小提示确保使用response_header函数并以 一个“\r\n”。
提供静态文件
很简单,只需将地址与要提供的文件一起添加。
示例:
from userv.routing import static_file router.add("/index", static_file('boot.py'))
尽管示例不应该公开您的代码。这是一个非常简单和快速的测试。
炫耀你的api
swagger.io是记录api的好方法。本节是提供swagger.json的快速方法 从你的服务器。必须在本地网络中查看此api。
说明示例:
# Get requests have a parameter description @swagger.info("My_funny summary") @swagger.parameter('myvarname', description="", example='sdfs', required=True) @swagger.response(200, 'smth is off') def myrest_func(request): raise # Post request needs a body description @swagger.info("My_funny summary") @swagger.body('weatherinfo', {'tada': "examplevar", "tada2": 2}) @swagger.response(200, 'smth is off') def post_myrest_func(request): raise router.add("/resturl", myrest_func, method="GET") router.add("/resturl", post_myrest_func, method="POST")
服务swagger.json的示例:
from userv.swagger import swagger_file router.add("/swagger.json", swagger_file('my swagger api', "api title", router_instance=router))
示例显示我们添加了路由器实例,因此所有注册到该点的路由。 也就是说,如果你想让所有的路线在你的招摇过市添加招摇过市文件前不久运行。 你现在需要做的就是在浏览器中打开一个招摇过市的用户界面,并使用链接到你所服务的招摇过市。
更多软件包和网络服务器
atm有一个socketserver的实现,它甚至可以在esp8266上运行:
pip install userv.socket_server
以及具有可交换接口的异步服务器。
pip install userv.async_server