平台支持用户通过插件的形式实现自定义API的逻辑,下面以Python SDK为例说明如何进行自定义API开发。
下载APP应用模板
点击下载模版应用,解压后里面有APP相关的各个配置文件。
配置自定义API的配置项
在demo/resources/customapis目录下新建一个sample.json文件,文件配置如下:
{
"prefix":"/test", // api请求的路径,支持最长路径匹配
"env":"python3", // 运行的环境
"filename":"sample.py", // 实现自定义api的脚本
"method":["GET","PUT"] // api请求的方法
}
编写自定义API脚本
详细内容参考SDK帮助手册 获取Python SDK,然后在bins目录下创建sample.py 脚本放置在demo/bins 目录下,脚本内容为:
from pdr_python_sdk.api.on_demand_api import OnDemandApi
from pdr_python_sdk.api.response import Response
from pdr_python_sdk.on_demand_action import run
class SampleApi(OnDemandApi):
def do_handle_data(self, data):
if not data.contains_request():
raise Exception('api data should contain request details')
request = data.request()
if 'GET' != str.upper(request.method()):
return Response(400, 'request is not GET').to_string()
return Response(200, ‘{'sample':'demo'}’).to_string()
if __name__ == '__main__':
run(SampleApi, sys.argv, sys.stdin.buffer, sys.stdout.buffer)
打包并安装APP
将demo目录打包成sample.tar.gz
tar -zcvf sample.tar.gz demo
去pandora 2.0的应用商店的“应用管理”界面上传sample.tar.gz
测试API
手动发送api请求:
curl host:ip/custom/v1/demo/test
注意URL的组成模式是:
host:ip/custom/v1/${APP_NAME}/${API_PREFIX}
其中
APP_NAME 是 APP的唯一标示名称
API_PREFIX 是在文件 resources/customapis 目录下的配置文件中 prefix 字段指定的API前缀
文档反馈
(如有产品使用问题,请提交工单)