机器数据分析平台

  • 机器数据分析平台 > 应用开发者文档 > APP开发手册 > APP开发说明 > 自定义API

    自定义API

    最近更新时间:2020-12-17 19:11:34

    平台支持用户通过插件的形式实现自定义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前缀
    
    以上内容是否对您有帮助?
  • Qvm free helper
    Close