Api Sdk For Python
Project description
api sdk for python
说明
- 接口基地址,如 https://api.local.com/V4/ ,具体请咨询运营人员
- 接口遵循RESTful,默认请求体json,接口默认返回json
- app_id, app_secret 联系技术客服,先注册一个的账号,用于申请绑定api身份
签名算法
- 每次请求都签名,保证传输过程数据不被篡改
- 客户端:sha256签名算法,将参数base64编码+app_secret用sha256签名,每次请求带上签名
- 服务端:拿到参数用相同的算法签名,对比签名是否正确
sdk 使用说明
- 环境:python >=3.5
- 支持get/post/patch/put/delete方法
- 参数说明
- app_id 分配的app_id
- app_secert 分配的app_secert, 用于签名数据
- api_pre api前缀
- timeout 请求超时时间,默认10秒,请合理设置
- 每次调用会返回三个参数:(原始字符串,解析后的json字典,错误字符串)
- 注意事项 针对所有请求,uri与get参数是分离的,如 https://api.local.com/V4/version?v=1, 调用时v=1参数,须通过query传递 raw, body, err = sdk.get('version', query={'v': 1})
安装
pip install pr2apisdk
使用
### 实例化 Sdk
import os
import logging
from pr2apisdk import Sdk
## 添加日志
logger = logging.getLogger()
formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
##日志输出到文件
fileHandle = logging.FileHandler('/tmp/sdk.log', encoding='utf-8')
fileHandle.setFormatter(formatter)
logger.addHandler(fileHandle)
##日志输出到stdout
streamHandle = logging.StreamHandler()
streamHandle.setFormatter(formatter)
logger.addHandler(streamHandle)
sdk = Sdk({
"app_id": os.environ['SDK_APP_ID'], ## 业务上使用时,替换为具体的值
"app_secert": os.environ['SDK_APP_SECERT'], ## 业务上使用时,替换为具体的值
"api_pre": os.environ['SDK_API_PRE'], ## 业务上使用时,替换为具体的值
"timeout": 30,
"logger": logger, ##如果不需要,此参数可不传
})
### get 方式请求数据
api = 'test.sdk.get'
query = {
"page": 1,
"pagesize": 10,
"data": {
"name": "name名称",
"domain": "baidu.com",
}
}
raw, jsonData, err = sdk.get(api, query=query)
print("api: ", api)
print("raw: ", raw)
print("jsonData: ", jsonData)
print("err: ", err)
print("")
### post 方式请求数据
api = 'test.sdk.post'
query = {}
postData = {
"name": 1,
"age": 10,
"data": {
"name": "name名称",
"domain": "baidu.com",
}
}
raw, jsonData, err = sdk.post(api, postData = postData, query=query)
print("api: ", api)
print("raw: ", raw)
print("jsonData: ", jsonData)
print("err: ", err)
print("")
### patch 方式请求数据
api = 'test.sdk.patch'
query = {}
postData = {
"name": 1,
"age": 10,
"data": {
"name": "name名称",
"domain": "baidu.com",
}
}
raw, jsonData, err = sdk.patch(api, postData = postData, query=query)
print("api: ", api)
print("raw: ", raw)
print("jsonData: ", jsonData)
print("err: ", err)
print("")
### put 方式请求数据
api = 'test.sdk.put'
query = {}
postData = {
"name": 1,
"age": 10,
"data": {
"name": "name名称",
"domain": "baidu.com",
}
}
raw, jsonData, err = sdk.put(api, postData = postData, query=query)
print("api: ", api)
print("raw: ", raw)
print("jsonData: ", jsonData)
print("err: ", err)
print("")
### delete 方式请求数据
api = 'test.sdk.delete'
query = {}
postData = {
"name": 1,
"age": 10,
"data": {
"name": "name名称",
"domain": "baidu.com",
}
}
raw, jsonData, err = sdk.delete(api, postData = postData, query=query)
print("api: ", api)
print("raw: ", raw)
print("jsonData: ", jsonData)
print("err: ", err)
print("")
更新日志
- 2022.11.09
完成python版SDK开发
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pr2apisdk-1.0.0.tar.gz
(6.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pr2apisdk-1.0.0.tar.gz.
File metadata
- Download URL: pr2apisdk-1.0.0.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a96f27dfb2d34cdceb975e97e0fb95d5813112f07eef2f953b8918689ec38096
|
|
| MD5 |
360ce7d94c3f3650947f94607e427505
|
|
| BLAKE2b-256 |
160e0a26183e1f1d46f6cab525b3f764ffd63f2c9954b2049ab4d5f3fa536463
|
File details
Details for the file pr2apisdk-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pr2apisdk-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f0ae179c8b313159a5a7a01aee1623927a195bdf05ec8a5429274e0c4dce87d
|
|
| MD5 |
9d5f27940d687defba924600a2303a7e
|
|
| BLAKE2b-256 |
589aad7009653a0adbc153b2b9442b4fed939d858153f566b7553ee9a7cad339
|