在 Python 中使用令牌进行 API 调用
当我们第一次遇到如何在 Python 中调用 API 的问题时,我们的第一个想法是,“什么是 API?”。
API是应用程序编程接口的首字母缩写; 它允许您访问软件的数据而不必访问它。 例如,如果调用加密货币 API,我们将直接在我们的应用程序中访问加密货币价格,而无需访问加密货币网站或应用程序。
当我们在 Python 中调用 API 时,我们可以使用令牌来调用,如果没有令牌,当我们在没有令牌的情况下调用 API 时,API 是不安全的,但是在使用令牌的情况下,它可以用作密码,并且 访问令牌的用户名。
我们将查看这两种情况的示例。
在 Python 中进行不带令牌的 API 调用
要启动,我们需要先安装一个 Python 库来处理这个请求; 在终端内,输入 pip install requests,创建一个新文件并将其命名为 new.py。 然后我们将输入这些代码:
new.py:
import requests
import json
class MakeApiCall:
def get_data(self, api):
response = requests.get(f"{api}")
if response.status_code == 200:
print("call successful")
self.formatted_print(response.json())
else:
print(
f"error {response.status_code} in fetching request")
def get_user_data(self, api, parameters):
response = requests.get(f"{api}", params=parameters)
if response.status_code == 200:
print("data fetch success")
self.formatted_print(response.json())
else:
print(
f"error {response.status_code} in fetching request")
def formatted_print(self, obj):
text = json.dumps(obj, sort_keys=True, indent=4)
print(text)
def __init__(self, api):
parameters = {
"site": "stackoverflow"
}
self.get_user_data(api, parameters)
if __name__ == "__main__":
api_call = MakeApiCall("https://api.stackexchange.com/2.2/info")
第一个片段处理调用; 一旦调用成功,打印结果,然后在成功获取数据后,打印结果; 否则,它会打印错误,然后它应该打印从 API 获取的数据。
然后最后一行是我们从中获取数据的 API 链接。 单击运行后,稍等片刻,您将在终端中看到获取的数据。
在 Python 中使用令牌调用 API
正如我们提到的,使用令牌制作 API 意味着我们与我们尝试访问的 API 建立了安全连接。 我们需要从 pip 安装一些依赖项。
我们首先需要生成一个令牌并为此部署 jwt。 在终端内,键入 pip install jwt。
打开一个新文件,将其命名为 jwt.py 并输入以下代码以生成令牌。
jwt.py:
import jwt
encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256")
print(encoded_jwt)
接下来,我们将安装 requests 来处理 API 调用请求。 我们将在终端内输入 pip install 请求。
然后我们创建一个文件,将其命名为 new.py 并输入以下代码:
new.py:
import requests
BASE_URL = 'https://www.boredapi.com/api/activity'
token = "your jwt token"
headers = {'Authorization': "Bearer {}".format(token)}
auth_response = requests.get(BASE_URL, headers=headers)
print(auth_response.json())
单击运行,您将在终端中看到从 API 中获取的数据。
总结
理想情况下,当我们想做一个更严肃的项目时,我们应该使用令牌调用 API 以增加保护。 虽然 jwt 提供了一种生成令牌的直接方法,但我们还可以通过其他方式生成令牌。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串