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

前提条件

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

创建公开API模板业务服务

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

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

  • 外部可直接调用HTTP协议的公开API,来获取其返回数据,如果该数据中包含敏感信息,则有严重泄漏风险。为保障您数据的安全性,请谨慎配置和使用公开API。
  1. 登录物联网平台控制台,在左侧导航栏单击IoT Studio > 项目管理
  2. 在普通项目列表中,找到目标项目,单击项目卡片。
    您也可单击全局资源项目,进入该项目详情页面。
  3. 在项目的主页选择业务服务页签。
  4. 单击业务服务列表左上方的新建,选择从模板新建
  5. 业务逻辑开发页面,单击右上方展开更多模板
  6. 找到并单击公开API模板卡片。
    公开API
  7. 在右侧的从模板创建业务逻辑页面,配置服务基本信息。
    参数 说明
    服务名称 自定义服务名称。

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

    所属项目 显示服务所属的项目。
    描述 描述服务的用途等信息。长度不超过100个字符(一个中文汉字算一个字符)。
  8. 单击使用该模板新建
    业务服务创建成功后,页面跳转至业务服务的编辑页面,并自动生成了一个业务流,您可根据实际需求配置节点参数。 公开API服务流

编辑服务流

  1. 在业务服务编辑画布中,单击HTTP请求节点,设置调用该API服务时,参数Action的值(例如:GetValue)。
    其他更多参数配置请参见HTTP请求HTTP请求节点
  2. 单击脚本节点,进行节点配置。
    以空白模板中的脚本方法为例,如图所示。脚本节点更多详细的配置操作请参见Node.js脚本设备节点配置
  3. 单击HTTP返回节点,设置该API服务的返回值。
    以直接返回上一节点(payload)值(例如:hello word)为例,如图所示。更多配置内容请参见HTTP返回HTTP返回值
  4. 单击页面右上角保存按钮。

调试与发布

  1. 在业务服务编辑页面,单击右上方的部署按钮部署,部署服务。
  2. 单击部署右侧的调试按钮,调试服务。
    调试服务
  3. 单击调试右侧的发布按钮,发布该服务。
    业务需要发布到云端,才能被调用。发布服务

已发布API调用示例

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

  1. 单击页面最左侧的服务调用设置按钮设置
  2. API调用方式页签,获取POST的API 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调用方式页签下方的请求示例