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 macloudapisdk
使用
### 实例化 Sdk
import os
import logging
from macloudapisdk 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
macloudapisdk-1.0.3.tar.gz
(9.4 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 macloudapisdk-1.0.3.tar.gz.
File metadata
- Download URL: macloudapisdk-1.0.3.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87d32de35db5a067a9a17b919cba2d3cad63b12133b2bedf11f91f0f04f3ef72
|
|
| MD5 |
0344fb054e44185ed2dc05ca8bb2701f
|
|
| BLAKE2b-256 |
63455500801160fb1081ed2d433bc2dedc930cdf7a56021f3abdaa4d074de399
|
File details
Details for the file macloudapisdk-1.0.3-py3-none-any.whl.
File metadata
- Download URL: macloudapisdk-1.0.3-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54f68a3934ea90ecfb41b5937b89d80119e24ccd70a4949ee3734fa4915b679c
|
|
| MD5 |
2af3e391408f419ec47cb943bb2da0c5
|
|
| BLAKE2b-256 |
30c373939e5a641471dc05aac0b6f1afd0688746db3b3520ceff125c7f183d24
|