用于构建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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
将命令式Java转换为函数式Java(游戏)   如何将用户输入拆分为字符数组或字符串数组,然后在java中检查是否有回文   java Kafka Streams应用程序总是在重新平衡并出现错误:协调员不知道这个成员   引发ConnectException之前的异常Java延迟   Java中的websphere JIT错误   有运行在Google App Engine上的Java版本Apache Shinding端口吗?   java Talend双类型除法   java Tomcat在servlet中给出404错误   如何通过将输入字与字符串数组中的元素进行比较来获得结果   java为什么我的GUI不显示?   Firebase中带有条件的java更新字段   Java正则表达式模式在Linux下不起作用(Amazon Beanstalk)   java中的递归素因子算法   java Android SQL删除行   jvm Java VM是在方法末尾始终为空的操作数堆栈   如何将文件中的值放入字符串中,并在Java中计算值?   HashMapJava中的密钥   java如何在不删除操作栏的情况下删除安卓 studio中的顶级