一个新兴的小部件,用于在jupyter笔记本中探索restfulapi。
ipyrest的Python项目详细描述
ipyrest
ipyrest是一个新兴的jupyter笔记本小部件,用于探索restfulapi。它有两个主要目标:以postman的精神提供一个更方便的接口,并允许插件组件,首先是各种mime类型的输出呈现器,例如geojson,请参见下文。
关于
ipyrest的核心是基于同样优秀的ipywidgets包的优秀请求包的包装器。其思想是在使用restfulapi时提供更多的交互式探索功能。它通过让您为api调用构建请求并更快地理解您收到的响应来实现这一点。为此,您可以使用现有视图进行请求和响应,或者构建自己的视图。它的灵感来自邮递员,但没有臃肿,并超越它,以确保你可以扩大它的方式你想要的。从本质上讲,它是为数据科学家而不是为网络开发人员设计的。
示例
from ipyrest import Api # Fix content-type as it is not set for gists. def reset_content_type(resp): resp.headers['Content-Type'] = 'application/vnd.geo+json' url = 'https://gist.githubusercontent.com/' \ 'deeplook/71e9ded257cfc2d8e5e9/raw/f0cfbab5f266fcb8056e8aea046f1f222346b76b/2013.geojson' Api(url, post_process_resp=reset_content_type)
功能
ipyrest处理以下概念,实现程度不同:http服务器、服务、请求、响应、数据、mime类型、压缩、日志记录、缓存、超时、错误、视图、插件、测试和ui。
目前,以下插件可用于以常见格式呈现http响应的输出:纯文本、csv、html、位图、svg、json、geojson、gpx、protobuf(以及一些实验性的3d内容)。
主要依赖项是:python>;=3.6、jupyter、ipywidgets、timeout_decorator、requests和vcr。插件依赖项是:ipyleaflet、ipyvolume、geojson、qgrid、protobuf。测试依赖项是flask、mypy和pytest。
安装
发布的ipyrest版本可以通过pypi安装:
pip install ipyrest
ipyrest的开发版本可以直接从github安装,也可以在其顶级目录中下载/克隆和解包之后安装:
pip install git+https://github.com/deeplook/ipyrest pip install -e .
测试
在根目录中运行pip install -r requirements_test.txt
和PYTHONPATH=. pytest -s -v tests
。一些测试将在tests/api_server.py
中自动启动本地flask web服务器,该服务器实现一组用于本地测试的示例api端点。其中一些测试需要为被测试的各个api定义为环境变量的键/令牌。如果不存在,将跳过这些测试。
文档
目前,docs
文件夹只是一个存根。目前,建议查看^{
如何贡献
- 检查未解决的问题或打开新问题以开始讨论 围绕某个特性思想或某个api的bug或示例(理想情况下没有 认证),例如从 Public APIs。
- 叉子the repository在 github开始对master分支进行更改(或 从它的分支)。
- 编写一个测试,显示错误已被修复或功能 按预期工作。
- 发送一个pull请求并对维护程序进行bug操作,直到它被合并并 出版。:)确保将自己添加到 AUTHORS。
历史记录
0.1.0(2018-11-24):
- pypi上的第一个版本。
0.1.1(2018-11-25):
- 小测试重构。
- 微小的代码/文本/格式更改。
- 小包装清理。
0.1.2(2018-11-26):
- 最后在pypi上呈现readme.md(?).
- 为QGrid启用经典笔记本扩展。
0.1.3(2018-11-27):
- 次要的文本格式问题。
0.1.4(2019-01-28):
- 将测试代码部分重构为tools.py。
- 将execute_请求函数包装为api类中的方法。