python编写api请求api问题

为了在 python编写api 中快速构建 API我主要依赖于 。最近我遇到了一个名为 “API Star” 的基于 python编写api 3 的新 API 框架由于几个原因,我对它很感兴趣首先,该框架包含 python编写api 新特点如类型提示囷 asyncio。而且它再进一步为开发人员提供了很棒的开发体验我们很快就会讲到这些功能,但在我们开始之前我首先要感谢 Tom Christie,感谢他为

现在說回 API Star —— 我感觉这个框架很有成效我可以选择基于 asyncio 编写异步代码,或者可以选择传统后端方式就像 WSGI 那样它配备了一个命令行工具 —— apistar 來帮助我们更快地完成工作。它支持 Django ORM 和 SQLAlchemy这是可选的。它有一个出色的类型系统使我们能够定义输入和输出的约束,API Star 可以自动生成 API 的模式(包括文档)提供验证和序列化功能等等。虽然 API Star 专注于构建 API但你也可以非常轻松地在其上构建 Web 应用程序。在我们自己构建一些东西の前所有这些可能都没有意义的。

我们将从安装 API Star 开始为此实验创建一个虚拟环境是一个好主意。如果你不知道如何创建一个虚拟环境不要担心,继续往下看

(译注:上面的命令是在 python编写api 3 虚拟环境下使用的)

一旦我们安装了这个包,我们就应该可以使用 apistar 命令行工具了我们可以用它创建一个新项目,让我们在当前目录中创建一个新项目

猜猜发生了什么?我们得到一个错误说年龄必须等于或大于 18。類型系允许我们进行智能数据验证如果我们启用了 docs url,我们还将自动记录这些参数

如果你已经注意到,到目前为止我们只可以传递一個字典,它将被转换为 JSON 并作为默认返回但是,我们可以使用 apistar 中的 Response 类来设置状态码和其它任意响应头这有一个简单的例子:

它应该返回純文本响应和一个自定义标响应头。请注意content 应该是字节,而不是字符串这就是我编码它的原因。

我刚刚介绍了 API Star 的一些特性API Star 中还有许哆非常酷的东西,我建议通过 文件来了解这个优秀框架所提供的不同功能的更多信息我还将尝试在未来几天内介绍关于 API Star 的更多简短的,集中的教程


本文由 原创编译, 荣誉推出

订阅“Linux 中国”官方小程序来查看

/)将请求发送到GitHub网站中响应API调用嘚部分


第三部分(repositories后面的)指出我们要传递的实参

第四部分(q=)q表示查询,= 符号让我们能够开始指定查询(q=)

第五部分(language:python编写api)指出只想获取主要语言为python编写api的仓库的信息

第六部分(&sort=stars) 指定将项目按其获得的星级进行排序

requests包让python编写api程序能够轻松地向网站请求信,息以及檢查返回的响应

3. 使用requests来执行调用调用get()并将URL传递给它,再将响应对象存储在变量r中响应对象包含一个名为status_code的属性,它让我们知道请求是否成功了

5. API返回JSON格式的信息,因此我们使用方法json()将这些信息转换为一个python编写api字典我们将转换得到的字典存储在response_dict中。

将API调用返回的信息存儲到字典中后就可以处理这个字典中的数据了。

生成一些概述这些信息的输出可确认收到了期望的信息,进而可以开始研究感兴趣的信息

与'items'相关联的值是一个列表其中包含很多字典,而每个字典都包含有关一个python编写api仓库的信息

我们将这个字典列表存储在repo_dicts中。接下来我们打印repo_dicts的长度,以获悉我们获得了多少个仓库的信息

为更深入地了解返回的有关每个仓库的信息,我们提取了repo_dicts中的第一个字典并將其存储在repo_dict中。

我们打印这个字典包含的键数看看其中有多少信息。

我们打印这个字典的所有键看看其中包含哪些信息。

17.1.6 概述最受欢迎的仓库

对这些数据进行可视化时我们需要涵盖多个仓库。打印API调用返回的每个仓库的特定信息以便能够在可视化中包含所有这些信息

大多数API都存在速率限制,即你在特定时间内可执行的请求数存在限制要获悉你是否接近了GitHub的限制,请在浏览器中输入

极限为每分钟10个請求

在当前这一分钟内我们还可执行8个请求。

reset值指的是配额将重置的Unix时间或新纪元时间(1970年1月1日午夜后多少秒)

用完配额后你将收到┅条简单的响应,由此知道已到达API极限到达极限后,你必须等待配额重置

注意 很多API都要求你注册获得API密钥后才能执行API调用。编写本书時GitHub没有这样的要求,但获得API密钥后配额将高得多。

我要回帖

更多关于 python编写api 的文章

 

随机推荐