氚云丨开发课— 09平台 API 的调用及自定义 API 的编写与调用| 学习笔记

简介: 快速学习氚云丨开发课— 09平台 API 的调用及自定义 API 的编写与调用。

开发者学堂课程【低代码氚云应用开发课程氚云丨开发课— 09平台 API 的调用及自定义 API 的编写与调用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/894/detail/14286


氚云丨开发课— 09平台 API 的调用及自定义 API 的编写与调用

 

内容简介:

一、平台 API 的调用

二、自定义 API 的编写与调用

 

一、 平台 API 的调用

氚云提供 OpenApi 接口,里面有8个公共方法以及自定义接口方法,开发者可以借助这些接口能力,实现企业系统与氚云的集成打通。调用氚云接口时,需使用HTTPS 协议、JSON 数据格式、UTF8 编码,访问域名https://www.h3yun.com。

POST 请求请在 HTTP Headers 中设置

Content-Type:application/json 以及身份认证参数 EngineCode、EngineSecret。

第二个是氚云要与氚云的接口进行对接的话,首先必须是开发板,

第二必须要有两个参数:

engine code 和 secret,这两个参数拿到以后才能成功调用接口,因为不可能让所有人随意去调用公司的数据,必须要有一个验证的机制。以创建单条业务数据为例子操作 API 的调用  

它的接口协议是:https://www.h3yun.com/OpenApi/Invoke,

调用方式是:POST(HTTPS),然后需要用到的就是把前面的两个参数放到 head里面,然后再进行一个 http 调用。

第一个是 ActionName,意思是标识它进行一个什么操作,是创建对象、是删除对象还是查询对象,这个 SchemeCode 就是要把这个对象创建到哪一个数据表里去。

第三个参数 BizObject 传上去的数据 json 的格式,这是第三个参数。

第四个参数 IsSummit,就是我们前两期讲到的创建 credit server 也会用到这个方法。


二、自定义 API 的编写与调用 

CreateBizObject:创建单个数据。

请求方式:POST(HTTPS)
请求地址:https://www.h3yun.com/OpenApi/lnvoke
请求包体:
"ActionName":"CreateBizObject","SchemaCode":"D000024chuangjian"
BizObject":"(
\"CreatedBy\": \"f3f69a49-edf6-468d-9aee-8cbc82a46662\"
\"Ownerld\":\" f3f69a49-edf6-468d-9aee-8cbc82a46662\"
\"F0000002\":\"123\
\"F0000009\:\"03ea2021-f7d5-4001-b996-7115e63f4319;6d1af175-a49d-48ad-bc3e-52aa35bb34dfdb4d0ace-9a0c-4c57-bc347138856c6a6\"

\"D000024Fdetail123\":[

代码:

using System;

using System. Collections. Generic;using System. Ling;

using System.Text;

usIng System. Threading.Tasks,using System I0,

using Newtonsoft.Json;using System. Net;

using System. Configuration;

namespace H3.Commons

1个引用

public class H3YunAPIHelp

{

{

0个引用 

public H3YunAPIHelpo[

//

TODD: Add constructor logic here

0个引用

pub1ic static string H3YunApi(string ActionName,Dictionary<string,string〉 pargam,out bool sucessfull){

try

string webApiAddress = ConfigurationManager.AppSettings["13YunApiAddress"].ToStringo:string engineCode =

ConfigurationManager.AppSettings["EngineCode"]. ToStringO;

string secret = ConfigurationManager.

AppSettings["EngineSecret"].ToString0;

System.Net.HttpWebRequest request;

request = (System.Net.HttpWebRequest)WebRequest.Create(webApiAddress);request. Method- "PoST";

Dictionary<string,object> dicParams = new DictionaryKstring,object>0);dicParams.Add("ActionName". ActionName) :  

//自定义参数

if (pargam != null &&pargam.Count > o)

foreach (KeyValuePair<string,string> kv in pargam){

dicParams.Add (kv.Key,kv.Va1ue);

string jsonData =:JsonConvert.Serialize0bject(dicParams) ;byte[] bytes;

bytes = System. Text.Encoding. UTF8.GetBytes(jsonData);request.ContentLength = bytes. Length;

string StrDate = string.Empty;

string strValue = string.Empty;

using (Stream writer = request.GetRequestStreamO)

writer.Write(bytes,0, bytes.Length);

writer. C1oseO ;

using (System,Net. HttpWebResponse response = (System.Net. IittpWebResponse)request.GetResponse())

using (System. I0.Stream s = response.GetResponseStreamO)

using (StreamReader Reader # new StreamReader(s,Encoding.UTF8))

while ((StrDate = Reader. ReadlineO) != nul1)

strValue i= StrDate + "lr\n";

using (Stream writer  request.CetRequestStreamO

writer.Write(bytes,0, bytes.Length);

writer. CloseO ;

using (System.Net.HIttpWebResponse response = (System.Net.HlittpWebResponse)request.GetResponseO)

using (System.I0.Stream s = response.GetResponseStreamO)

{

using (StreamReader Reader = new StreamReader(s,Encoding. UTF8)){

while ((StrDate= Reader. ReadLineO)!= nul1)

strvalue i= StrDate + "irln";

sucessfull = true;

return strValue;

catch (System.Web.Services.Protocols.SoapException ee)

sucessfull =false;

return ee.ToStringO;

身份认证:

每一次请求 OpenApi 接口都必须携带身份认证参数:EngineCode、EngineSecret。

注意事项:Secret 重置后,更新接口中的 EngineSecret 参数的值

查询单条业务数据:

LoadBizObject 为加载单个数据,请勿使用该接口来循环加载数据,可以使用LoadBizObjects 来批量加载数据。

请求方式:POST(HTTPS)

请求地址:https://www.h3yun.com/OpenApi/invoke

请求包体:

{

"ActionName":"LoadBizObject",

"SchemaCode":"D000024chuangjian",

"BizObjectId":"fea0ade0-505d-4ffc-bca0-6cbdf3c302c6"

}

请求示例(C#):

string apiAddress = @"https://www.h3yun.com/OpenApi/Invoke";

HttpWebRequest request =  (System.Net.HttpWebRequest)WebRequest.Create(apiAddress);

request.Method = "POST";

request.ContentType = "application/json";

//身份认证参数

request.Headers.Add("EngineCode", "");

request.Headers.Add("EngineSecret","");

//参数

Dictionary<string, object> dicParams = new Dictionary<string, object>();

dicParams.Add("ActionName", "LoadBizObject");

dicParams.Add("SchemaCode", "D000024chuangjian");

dicParams.Add("BizObjectId","fea0ade0-505d-4ffc-bca0-6cbdf3c302c6"); 

string jsonData = JsonConvert.SerializeObject(dicParams);

byte[] bytes;

bytes = System.Text.Encoding.UTF8.GetBytes(jsonData);

request.ContentLength = bytes.Length;

using (Stream writer = request.GetRequestStream())

{

writer.Write(bytes, 0, bytes.Length);

writer.Close();

}

string strValue = string.Empty;

using (System.Net.HttpWebResponse response =   (System.Net.HttpWebResponse)request.GetResponse())

{

using (System.IO.Stream s =   response.GetResponseStream())

{

string StrDate = string.Empty;

using (StreamReader Reader = new StreamReader(s,   Encoding.UTF8))

{

while ((StrDate = Reader.ReadLine())   != null)

{

strValue += StrDate + "\r\n";

}

}

}

}

返回结果:

{

"Successful": true,

"ErrorMessage": null,

"Logined": false,

"ReturnData": {

"BizObject": {

"ObjectId": "fea0ade0-505d-4ffc-bca0-6cbdf3c302c6",

"Name": "123",

"ModifiedBy": "System",

"ModifiedTime": "2019/6/12 14:32:06",

"WorkflowInstanceId":   "f6a030fc-1311-4877-bc88-cb2649a8f784",

"Status": 2,

"OwnerId": "System",

"F0000028": null,

"F0000002": "123",

"ModifiedByObject": {

"ObjectId":   "18f923a7-5a5e-426d-94ae-a55ad1a4b239",

"Name": "System"

},

"OwnerIdObject": {

"ObjectId":   "f3f69a49-edf6-468d-9aee-8cbc82a46662",

"Name": "System"

},

"CreatedByObject": {

"ObjectId":   "f3f69a49-edf6-468d-9aee-8cbc82a46662",

"Name": "System"

},

"OwnerDeptIdObject": {

"ObjectId":   "04204118-a9d4-42bf-898b-1cb2f2f73e29",

"Name": "System部门"

}

}

},

"DataType": 0

} 

创建单条业务数据

CreateBizObject:   创建单个数据。

请求方式:POST(HTTPS)

请求地址:https://www.h3yun.com/OpenApi/invoke

请求包体:

{

"ActionName":"CreateBizObject",

"SchemaCode":"D000024chuangjian",

"BizObject":" {

\"CreatedBy\":   \"f3f69a49-edf6-468d-9aee-8cbc82a46662\",

\"OwnerId\": \"   f3f69a49-edf6-468d-9aee-8cbc82a46662\",

\"F0000002\": \"123\",

\"F0000009\":   \"03ea2021-f7d5-4001-b996-7115e63f4319;6d1af175-a49d-48ad-bc3e-52aa35bb34df;db4d0ace-9a0c-4c57-bc3d-47138856c6a6\",

\"D000024Fdetail123\": [

{

\"zh\":   \"123\"

},

{

\"zh\":   \"312\"

}

]

}",

"IsSubmit":"true"

} 

请求示例(C#):

string apiAddress = @"https://www.h3yun.com/OpenApi/Invoke";

HttpWebRequest request =  (System.Net.HttpWebRequest)WebRequest.Create(apiAddress);

request.Method = "POST";

request.ContentType = "application/json";

//身份认证参数

request.Headers.Add("EngineCode", "");

request.Headers.Add("EngineSecret","");

//参数

Dictionary<string, object> dicParams = new Dictionary<string, object>();

dicParams.Add("ActionName", "CreateBizObject");

dicParams.Add("SchemaCode", "D000024chuangjian");

dicParams.Add("BizObject","{

\"CreatedBy\":   \"f3f69a49-edf6-468d-9aee-8cbc82a46662\",

\"OwnerId\": \"   f3f69a49-edf6-468d-9aee-8cbc82a46662\",

\"F0000002\":   \"123\",

\"F0000009\":   \"03ea2021-f7d5-4001-b996-7115e63f4319;6d1af175-a49d-48ad-bc3e-52aa35bb34df;db4d0ace-9a0c-4c57-bc3d-47138856c6a6\",

\"D000024Fdetail123\": [

{

\"zh\":   \"123\"

},

{

\"zh\": \"312\"

}

]

}");

dicParams.Add("IsSubmit", "true");

string jsonData = JsonConvert.SerializeObject(dicParams);

byte[] bytes;

bytes = System.Text.Encoding.UTF8.GetBytes(jsonData);

request.ContentLength = bytes.Length;

using (Stream writer = request.GetRequestStream())

{

writer.Write(bytes, 0, bytes.Length);

writer.Close();

}

string strValue = string.Empty;

using (System.Net.HttpWebResponse response =   (System.Net.HttpWebResponse)request.GetResponse())

{

using (System.IO.Stream s =   response.GetResponseStream())

{

string StrDate = string.Empty;

using (StreamReader Reader = new StreamReader(s,   Encoding.UTF8))

{

while ((StrDate = Reader.ReadLine())   != null)

{

strValue += StrDate + "\r\n";

}

}

}

}

请求示例(JAVA):

Map<String, String> paramMap = new HashMap();

paramMap.put("ActionName", "CreateBizObject");

paramMap.put("SchemaCode", "D000024chuangjian");

paramMap.put("BizObject","{

\"CreatedBy\":   \"f3f69a49-edf6-468d-9aee-8cbc82a46662\",

\"OwnerId\": \"   f3f69a49-edf6-468d-9aee-8cbc82a46662\",

\"F0000002\":   \"123\",

\"F0000009\":   \"03ea2021-f7d5-4001-b996-7115e63f4319;6d1af175-a49d-48ad-bc3e-52aa35bb34df;db4d0ace-9a0c-4c57-bc3d-47138856c6a6\",

\"D000024Fdetail123\": [

{

\"zh\": \"123\"

},

{

\"zh\":   \"312\"

}

]

}");

paramMap.put("IsSubmit",   "true");  

//身份认证参数

Map headers = new HashMap();

headers.put("EngineCode","");

headers.put("EngineSecret","");

Gson gson = new Gson();

String result = HttpRequestUtil.sendPost(url,gson.toJson(paramMap), headers);

返回结果:
{

"Successful": true,

"ErrorMessage": null,

"Logined": false,

"ReturnData": {

"BizObjectId":   "9adb4077-00a9-4806-8abc-ec753bdab7a6",

"WorkflowInstanceId":   "9b0c1c76-395d-4ff1-9807-dfcf887becb6"

},

"DataType": 0

}

相关文章
|
20天前
|
API 数据库 决策智能
基于百炼平台qwen-max的api 打造一套 检索增强 图谱增强 智能工具调用决策的智能体
本文介绍了一种基于阿里云百炼平台的`qwen-max` API构建的智能体方案,该方案集成了检索增强、图谱增强及智能工具调用决策三大模块,旨在通过结合外部数据源、知识图谱和自动化决策提高智能回答的准确性和丰富度。通过具体代码示例展示了如何实现这些功能,最终形成一个能灵活应对多种查询需求的智能系统。
101 11
|
20天前
|
自然语言处理 NoSQL API
基于百炼平台qwen-max的api 打造一套 检索增强 图谱增强 基于指令的智能工具调用决策 智能体
基于百炼平台的 `qwen-max` API,设计了一套融合检索增强、图谱增强及指令驱动的智能工具调用决策系统。该系统通过解析用户指令,智能选择调用检索、图谱推理或模型生成等工具,以提高问题回答的准确性和丰富性。系统设计包括指令解析、工具调用决策、检索增强、图谱增强等模块,旨在通过多种技术手段综合提升智能体的能力。
107 5
|
1天前
|
API 数据安全/隐私保护 UED
探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
在掌握了鸿蒙系统的开发基础后,我挑战了蓝牙功能的开发。通过Bluetooth A2DP和Access API,实现了蓝牙音频流传输、设备连接和权限管理。具体步骤包括:理解API作用、配置环境与权限、扫描并连接设备、实现音频流控制及动态切换设备。最终,我构建了一个简单的蓝牙音频播放器,具备设备扫描、连接、音频播放与停止、切换输出设备等功能。这次开发让我对蓝牙技术有了更深的理解,也为未来的复杂项目打下了坚实的基础。
81 58
探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
|
6天前
|
自然语言处理 前端开发 Java
API管理平台:你用的到底是哪个?
本文介绍了多个API管理和文档工具,包括Apifox、Swagger及其增强版Knife4j和RapiDoc、阿里RAP、去哪儿YApi以及Redoc。这些工具各有特色,适用于不同的开发场景。Apifox提供一体化协作平台,支持API文档、调试、Mock和测试;Swagger结合Knife4j适合Java与前端团队,界面美观且功能丰富;YApi则适用于跨语言开发,支持多种API形式的管理;阿里RAP专注于接口文档管理和Mock服务;Redoc则是开源的现代化API文档浏览器。总结而言,选择工具应根据团队需求和技术栈来决定。
70 16
|
6天前
|
JSON API 数据处理
如何运用获得京东商品详情API接口搬运商品到自己的电商平台?(一篇文章全搞定)
本文介绍如何利用京东商品详情API接口,将商品信息高效搬运至第三方电商平台。主要内容包括:前期准备(注册账号、申请权限、阅读文档、技术准备),API接口调用(构造请求URL、发送请求、解析返回数据、调用频率限制),数据处理与上架(清洗整理、分类设置、信息上传、商品审核),定时更新与维护(更新商品信息、信息维护、错误处理与日志记录),以及案例分析和优化建议。通过合理使用该接口,可提高运营效率,丰富商品种类,增强平台竞争力。
39 13
|
7天前
|
监控 供应链 搜索推荐
阿里妈妈商品详情API接口:开发、应用与收益的深度剖析
阿里妈妈是阿里巴巴旗下的数字营销平台,其商品详情API接口为开发者提供了获取淘宝、天猫等电商平台商品详细信息的工具。本文介绍了该接口的开发流程、应用场景及带来的收益,揭示了其在电商生态中的重要地位。
57 6
|
7天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
46 6
|
9天前
|
监控 搜索推荐 API
京东商品详情API接口的开发、应用与收益探索
在数字化和互联网高速发展的时代,京东通过开放商品详情API接口,为开发者、企业和商家提供了丰富的数据源和创新空间。本文将探讨该API接口的开发背景、流程、应用场景及带来的多重收益,包括促进生态系统建设、提升数据利用效率和推动数字化转型等。
34 3
|
15天前
|
供应链 搜索推荐 API
探索1688榜单商品详细信息API接口:开发、应用与收益
本文深入探讨了1688榜单商品详细信息API接口的开发与应用,涵盖接口概述、开发条件、调用方法及数据处理等内容。该API帮助企业高效获取1688平台商品信息,应用于商品信息采集、校验、同步与数据分析等领域,有效提升了企业的运营效率、库存管理、销售转化率及市场策略制定能力,降低了采购成本,提升了客户满意度。
37 9
|
17天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
52 10