通过http api访问python对象的瓶子包装器

nimrodel的Python项目详细描述


尼姆罗德尔

一个简单的bottle.py包装器,提供对任何python对象的http api访问。

要求

快速启动

使用安装

pip install nimrodel

使用

fromnimrodelimportAPImyapi=API()

您可以选择使用port=42传递端口号,使用path="api"传递路径,以及是否要在IPv4上服务(IPv6=False)。 你也可以给API对象一个现有的瓶子服务器(^ {< CD4}}),在这种情况下,你的API将被服务在现有服务器上。强烈建议还传递一个路径变量来将api与服务器的常规路由分离。 您还可以传递一个带有parsedoc=yourfunction的自定义函数,该函数将方法作为输入,并返回一个字典,其中值为desc表示函数描述,值为params表示映射到字典的参数名字典,值为returns表示返回值字典。返回字典和参数字典都可以分别具有数据类型和描述的键typedesc。默认情况下,nimrodel将尝试根据rest标准(sphinx)解析docstring。

然后使用decorator访问任何类。

@myapi.apiclass("group")classGroup:def__init__(self,name,apipath,songs):# some stuffself.__apiname__=apipath

该类的任何实例现在都可以通过类路径及其单独路径的组合进行访问。现在只是装饰方法。它的所有参数都可以通过uri查询参数传递。

@myapi.get("songs")defget_songs(self,member):return{"songs":[s["title"]forsinself.songsifmemberins["performers"]]}

现在创建一个对象并确保它有一个__apiname__属性:

e=Group("Exid","exid",exidsongs)

然后您可以通过简单的http调用来访问它的方法,比如/group/exid/songs?member=Junghwa

/api_explorer下面还有一个集成的图形api浏览器。

nimrodel还允许您使用类EAPI创建一个简单的基于函数的api。

有关这些可能性的更深入的探索,请参阅存储库中包含的文件example.py

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

推荐PyPI第三方库


热门话题
java我能在这个程序中更好地使用内存吗?   为什么我的Java while循环迭代了一半   java IntelliJ IDEA不在构建时复制资源   socket仅在Java TCP服务器输出上检查客户端断开连接   java游戏物理摩擦   java片段onClick调用方法   symja数学分析器中无法识别java Abs[x]   java在使用泛型时创建二进制搜索树类的实例?   java在外键约束表上的添加和删除   语法java表达式的含义,如果有条件   java创建内联对象并作为参数传递   是否有相当于Redis排序集(zset)的Java数据结构   java找不到适合的方法(无参数)   音频文件操作给定字节帧的音量Java   Eclipse4不以JavaWebStart启动   java如何使用org在JSON对象中获取嵌套的键元素。json?   java与Jackson的反序列化:“org.codehaus.Jackson.map.JsonMappingException:无法反序列化[projectname]的实例。”   字符串的Java正则表达式   spring集成上的java检测缺火指令