用于构建restapi的小型、自以为是的库。
apian的Python项目详细描述
简介
apian是一个固执己见的库,用于使用 最小的样板。它是围绕flask-restplus的薄包装,并提供:
- 使用openapi的文档。
- 信息和卫生资源。
- 基于jwt的身份验证。
- 使用miniscule进行配置注入。
示例
在项目的根目录中添加配置文件config.yaml
,使用
以下内容:
environment:productiondebug:Falseauthentication:enabled:Truesecret:secret
创建烧瓶应用程序并在localhost:5000
:
fromapianimportread_config,create_api,create_app,authenticatedfromflask_restplusimportNamespace,Resourcens=Namespace("user")@ns.route("")classUserItem(Resource):@authenticateddefget(self,user_id):returnuser_idconfig=read_config()api=create_app("my-app",config)api.add_namespace(ns)app=create_app(api,config)app.run()
应用程序在路径上有端点:
GET /my-app/api/info
-返回有关服务的信息。GET /my-app/api/health
-返回服务的健康状态。GET /my-app/api/user
-返回在承载令牌中设置的用户id。
要访问用户资源,请确保安装了requests包并执行 以下片段:
importjwtimportrequestsdefauth_token():user_id=10claims={"iat":dt.datetime.utcnow(),"sub":user_id}key="secret"returnjwt.encode(claims,key,"HS256")headers={"Authorization":"Bearer {}".format(requests.get("http://localhost:5000/my-app/api/user",headers=headers)