氚云丨开发课— 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

}

相关文章
|
29天前
|
自动驾驶 程序员 API
告别重复繁琐!Apipost参数描述库让API开发效率飙升!
在API开发中,重复录入参数占用了42%的时间,不仅效率低下还易出错。Apipost推出的参数描述库解决了这一痛点,通过智能记忆功能实现参数自动填充,如版本号、分页控制、用户信息等常用字段,大幅减少手动输入。支持Key-Value与Raw-Json格式导入,一键提取响应结果至文档,将创建20参数接口文档时间从18分钟缩短至2分钟。相比Postman需手动搜索变量,Apipost的参数复用响应速度仅0.3秒,且支持跨项目共享与实时纠错,真正实现“一次定义,终身受益”。
|
1月前
|
缓存 安全 API
API 接口开发与合理利用:构建高效、安全、可维护的数字桥梁
本文全面解析API接口的设计、优化与安全维护。API作为系统间交互的标准化契约,核心价值在于解耦系统、提升复用性和构建开放生态。设计时需遵循六大原则:明确输入输出、关注单一职责、实现自我表达、确保功能无重叠、保障幂等性及合理版本化。性能优化从批量处理、异步调用、并行执行等方面入手,同时结合缓存、池化技术和SQL优化提升效率。安全性涵盖加密传输、加签验签、Token认证、防重放攻击及限流熔断等十大要点。最后,通过文档自动生成、日志体系和版本管理确保接口可持续迭代。优秀的API应以契约优先、演进思维和防御心态为核心,成为系统的数字资产,支持内外部高效协作与生态建设。
|
2月前
|
存储 供应链 监控
1688商品数据实战:API搜索接口开发与供应链分析应用
本文详细介绍了如何通过1688开放API实现商品数据的获取与应用,涵盖接入准备、签名流程、数据解析存储及商业化场景。开发者可完成智能选品、价格监控和供应商评级等功能,同时提供代码示例与问题解决方案,确保法律合规与数据安全。适合企业开发者快速构建供应链管理系统。
|
2月前
|
安全 API Swift
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
141 15
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
|
1月前
|
前端开发 测试技术 API
2025年API开发必备:10款优秀Postman替代工具大盘点
API测试在现代开发中至关重要,Postman虽为首选,但市场上涌现出许多优秀替代工具。本文精选2025年10款好评如潮的API测试工具:Apifox、Insomnia、Hoppscotch、Paw、Talend API Tester、HTTPie、ARC、Swagger UI、SoapUI和Thunder Client。这些工具各具特色,满足不同需求,如团队协作、开源易用、自动化测试等。无论是简洁轻量还是功能全面,总有一款适合你的团队,助力效率提升。
|
18天前
|
人工智能 自然语言处理 JavaScript
关于API调用速率问题,能否增大一些?另外我想基于其开发实际场景应用,不知是否提供一些相关支持
这是一个关于开源多语言切换项目的简介:作者开发了一款自动为网页提供多语言切换的开源项目,已广泛应用于众多网站和项目。该项目现已对接通义千问(qwen3),但由于接口速度限制成为瓶颈,希望阿里云能提高请求速率。此外,作者询问是否能获得阿里支持,例如提升接口速率、用户推荐分成、以及文档展示支持等,以进一步推广多语言能力至更多应用场景。项目地址:https://github.com/xnx3/translate
63 0
|
1月前
|
人工智能 自然语言处理 搜索推荐
WordPress AI 原创文章自动生成插件,新增自定义生成图片API功能,支持自定义99%的生图API,拓展性超强
这是一款功能强大的WordPress AI原创文章自动生成插件,支持两种智能生成模式:传统自动方式和懒人智能方式。通过AI生成长尾关键词、多语言文章、动态化标题与内容结构,优化SEO效果,去AI特征,吸引更多点击。插件可自动生成配图、TAG标签及摘要,支持24小时无人值守自动化生成文章,并提交至各大搜索引擎。同时提供关键词管理、定时任务、API集成等功能,兼容主流AI模型,助力网站内容创作与SEO优化。适合个人站长及企业用户提升内容生产力。
|
2月前
|
数据可视化 测试技术 API
前后端分离开发:如何高效调试API?有工具 vs 无工具全解析
在前后端分离开发中,API调试至关重要。本文探讨有无调试工具时如何高效调试API,重点分析Postman、Swagger等工具优势及无工具代码调试方法。通过实际场景如用户登录接口,对比两者特性。同时介绍Apipost-Hepler(IDEA插件),将可视化与代码调试结合,提供全局请求头配置、历史记录保存等功能,优化团队协作与开发效率,助力API调试进入全新阶段。
|
3月前
|
机器学习/深度学习 人工智能 Serverless
👉「免费满血DeepSeek实战-联网搜索×Prompt秘籍|暨6平台横评」
满血 DeepSeek 免费用!支持联网搜索!创作声明:真人攥写-非AI生成,Written-By-Human-Not-By-AI
3287 10
👉「免费满血DeepSeek实战-联网搜索×Prompt秘籍|暨6平台横评」
|
2月前
|
存储 编解码 资源调度
鸿蒙相机开发实战:从设备适配到性能调优 —— 我的 ArkTS 录像功能落地手记(API 15)
本文分享鸿蒙相机开发经验,从环境准备到核心逻辑实现,涵盖权限声明、模块导入、Surface关联与分辨率匹配,再到录制控制及设备适配法则。通过实战案例解析,如旋转补偿、动态帧率调节和编解码优化,帮助开发者掌握功能实现、设备适配与体验设计三大要点,减少开发坑点。适合鸿蒙新手及希望深化硬件交互能力的工程师参考收藏。
127 2

热门文章

最新文章