公开API

更新时间:
复制为 MD 格式

公开API服务模板可帮助您创建一个无需鉴权和SDK即可直接调用的API服务,且创建之后无法再修改为需要AppKey鉴权的API。该API主要用于更简单的物联网能力输出。

前提条件

已完成创建项目。详细内容,请参见项目

创建公开API模板业务服务

重要
  • 公开API服务中不能配置的节点:设备节点的各产品、MQTT发布、移动应用推送、应用推送、项目内API、变量设置和键值对操作。使用以上节点需要鉴权,在外部(除Web可视化开发外)直接调用公开API时,将无法获取节点的输出数据。

    您可创建空白的业务服务,配置所需的鉴权节点,发布为鉴权API。外部调用该API时,所依赖的SDK即可完成节点鉴权。

  • 外部可直接调用HTTP协议的公开API,来获取其返回数据,如果该数据中包含敏感信息,则有严重泄漏风险。为保障您数据的安全性,请谨慎配置和使用公开API。
  1. 在普通项目列表中,找到目标项目,单击项目卡片。

    您也可单击全局资源项目,进入该项目详情页面。

  2. 在项目的主页选择业务逻辑页签。
  3. 单击业务服务列表左上方的新建,选择从模板新建
  4. 业务逻辑开发页面,单击右上方展开更多模板
  5. 找到并单击公开API模板卡片。
  6. 在右侧的从模板创建业务逻辑页面,配置服务基本信息。
    参数 说明
    服务名称 自定义服务名称。

    仅支持中文汉字、英文字母、数字、下划线(_)、连接号(-)和英文圆括号(()),且必须以中文汉字、英文字母或数字开头,长度不超过30个字符(一个中文汉字算一个字符)。

    所属项目 显示服务所属的项目。
    描述 描述服务的用途等信息。长度不超过100个字符(一个中文汉字算一个字符)。
  7. 单击使用该模板新建
    业务服务创建成功后,页面跳转至业务服务的编辑页面,并自动生成了一个业务流,您可根据实际需求配置节点参数。 该业务流包含HTTP请求Node.js脚本HTTP返回三个节点,依次串联。

编辑服务流

  1. 在业务服务编辑画布中,单击HTTP请求节点,设置调用该API服务时,参数Action的值(例如:GetValue)。
    其他更多参数配置,请参见HTTP请求
  2. 单击脚本节点,进行节点配置。
    以空白模板中的脚本方法为例。脚本节点更多详细的配置操作,请参见Node.js脚本。该脚本为异步函数,接收 payload(上一节点的输出)、nodequerycontext 四个参数,默认代码执行 console.log 打印 payload 值并返回字符串 'hello world'。
  3. 单击HTTP返回节点,设置该API服务的返回值。
    以直接返回上一节点(payload)值(例如:hello world)为例。更多配置内容,请参见HTTP返回。在输出区域选择来自节点,并在下拉列表中选择上一节点(payload)
  4. 单击页面右上角保存按钮保存

调试与发布

  1. 在业务服务编辑页面,单击右上方的部署调试按钮部署,部署服务。
  2. 服务部署成功后,再次单击部署调试按钮部署,调试该服务。
    调试完成后,所有节点显示绿色勾号表示运行成功。在右侧节点日志面板可查看各节点的运行详情,此示例中最终输出为 hello world。
  3. 单击调试右侧的发布按钮,发布该服务。
    业务需要发布到云端,才能被调用。发布成功后,页面弹出成功提示,可选择如何使用服务返回工作区返回项目概览

已发布API调用示例

下文以curl命令为例,描述已发布API的直接调用方法。

  1. 单击页面最左侧的服务调用设置按钮设置
  2. API调用方式页签,获取POSTAPI Path值(例如:http://*.com)和action的默认值(例如:GetValue)。
  3. 打开系统的命令窗口,输入curl命令。
    说明 命令中的action的值GetValue、和API Path的值http://*.com仅为示例,实际场景中需要替换为上一步获取的数据。
    curl -v -X POST -d "{'params':{'action':'GetValue'},'request':{'apiVer':'1.0.0'},'version':'1.0','id': 12}" http://*.com
  4. 按回车键,执行命令,获取API的返回结果。
    {"code":200,"data":"hello world","success":true,"description":"请求成功","id":"2e8fee80-***-***","message":"success"}

API的更多调用方式,可查看API调用方式页签下方的请求示例