一个新兴的小部件,用于在jupyter笔记本中探索restfulapi。

ipyrest的Python项目详细描述


ipyrest

BinderNbviewerTravis-CIimageimageimageimageimageSay Thanks!

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)

banner

功能

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.txtPYTHONPATH=. pytest -s -v tests。一些测试将在tests/api_server.py中自动启动本地flask web服务器,该服务器实现一组用于本地测试的示例api端点。其中一些测试需要为被测试的各个api定义为环境变量的键/令牌。如果不存在,将跳过这些测试。

文档

目前,docs文件夹只是一个存根。目前,建议查看^{},主要是一个类似教程的示例集合,在Meetup上作为演示给出。其中一些需要适当的api密钥。

如何贡献

  1. 检查未解决的问题或打开新问题以开始讨论 围绕某个特性思想或某个api的bug或示例(理想情况下没有 认证),例如从 Public APIs
  2. 叉子the repository在 github开始对master分支进行更改(或 从它的分支)。
  3. 编写一个测试,显示错误已被修复或功能 按预期工作。
  4. 发送一个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类中的方法。

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

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?