接受 HTTP headers 或 JSON POST 数据中的 api 键
Accepting api keys in HTTP headers or JSON POST data
我有一个 HTTP JSON 端点 localhost:8000/resource/
,它将 JSON 数据作为输入,returns JSON 作为输出。我现在正在向端点添加基于 API Key
的授权。有两种方法可以在此端点接受 API Key
:
方法A:在请求中headers
示例 python 代码:
import requests
headers = {
'API-Key': '<my-api-key>',
}
r = requests.post('http://localhost:8000/resource/',
json={'input': <value>},
headers=headers)
方法 B:在 JSON 数据本身中
示例 python 代码:
import requests
r = requests.post('http://localhost:8000/resource/',
json={'input': <value>, 'API-Key': '<my-api-key>'},)
我通常会注意到 方法 A 被采用。 API 密钥与其他 json 数据一起传递的后一种方法有什么问题吗?
我认为这与清晰度有关,API 密钥与输入无关,它只是一种授权形式。
处理路由等的大型框架能够根据特定 headers 进行过滤,并且根据请求中的特定输入形式进行过滤会很麻烦 body将需要用户干预并为其获取该值。 Headers 更简单,足以满足 hash-table.
中的简单数据
我有一个 HTTP JSON 端点 localhost:8000/resource/
,它将 JSON 数据作为输入,returns JSON 作为输出。我现在正在向端点添加基于 API Key
的授权。有两种方法可以在此端点接受 API Key
:
方法A:在请求中headers
示例 python 代码:
import requests
headers = {
'API-Key': '<my-api-key>',
}
r = requests.post('http://localhost:8000/resource/',
json={'input': <value>},
headers=headers)
方法 B:在 JSON 数据本身中
示例 python 代码:
import requests
r = requests.post('http://localhost:8000/resource/',
json={'input': <value>, 'API-Key': '<my-api-key>'},)
我通常会注意到 方法 A 被采用。 API 密钥与其他 json 数据一起传递的后一种方法有什么问题吗?
我认为这与清晰度有关,API 密钥与输入无关,它只是一种授权形式。
处理路由等的大型框架能够根据特定 headers 进行过滤,并且根据请求中的特定输入形式进行过滤会很麻烦 body将需要用户干预并为其获取该值。 Headers 更简单,足以满足 hash-table.
中的简单数据