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

}

相关文章
|
6天前
|
Java API Maven
如何使用Java开发抖音API接口?
在数字化时代,社交媒体平台如抖音成为生活的重要部分。本文详细介绍了如何用Java开发抖音API接口,从创建开发者账号、申请API权限、准备开发环境,到编写代码、测试运行及注意事项,全面覆盖了整个开发流程。
46 10
|
7天前
|
API 开发工具 数据库
开发一份API接口,需要注意这些,看你做到了几项
本文介绍了设计API接口时需注意的关键点,包括数字签名、敏感数据加密与脱敏、限流、参数校验、统一返回与异常处理、请求日志记录、幂等设计、数据量限制、异步处理、参数定义、完整文档及开发者对接SDK等内容,旨在帮助开发者设计出安全、稳定、易维护的API接口。
47 6
开发一份API接口,需要注意这些,看你做到了几项
|
14天前
|
JSON 安全 API
如何使用Python开发API接口?
在现代软件开发中,API(应用程序编程接口)用于不同软件组件之间的通信和数据交换,实现系统互操作性。Python因其简单易用和强大功能,成为开发API的热门选择。本文详细介绍了Python开发API的基础知识、优势、实现方式(如Flask和Django框架)、实战示例及注意事项,帮助读者掌握高效、安全的API开发技巧。
41 3
如何使用Python开发API接口?
|
10天前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
9天前
|
JSON 前端开发 API
后端开发中的API设计与文档编写指南####
本文探讨了后端开发中API设计的重要性,并详细阐述了如何编写高效、可维护的API接口。通过实际案例分析,文章强调了清晰的API设计对于前后端分离项目的关键作用,以及良好的文档习惯如何促进团队协作和提升开发效率。 ####
|
7天前
|
JSON API 数据格式
如何使用Python开发1688商品详情API接口?
本文介绍了如何使用Python开发1688商品详情API接口,获取商品的标题、价格、销量和评价等详细信息。主要内容包括注册1688开放平台账号、安装必要Python模块、了解API接口、生成签名、编写Python代码、解析返回数据以及错误处理和日志记录。通过这些步骤,开发者可以轻松地集成1688商品数据到自己的应用中。
24 1
|
10天前
|
监控 搜索推荐 安全
探究亚马逊详情API接口:开发与应用
在数字化时代,亚马逊作为全球领先的电商平台,为商家和消费者提供了丰富的商品信息和便捷的购物体验。本文深入探讨了亚马逊详情API接口的获取与运用,帮助开发者和商家实时监控商品数据、分析市场趋势、优化价格策略、分析竞争对手、构建推荐系统及自动化营销工具,从而在竞争中占据优势。文章还提供了Python调用示例和注意事项,确保API使用的安全与高效。
35 3
|
14天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
40 4
|
14天前
|
XML JSON API
【PHP开发专栏】PHP RESTful API设计与开发
随着互联网技术的发展,前后端分离成为Web开发的主流模式。本文介绍RESTful API的基本概念、设计原则及在PHP中的实现方法。RESTful API是一种轻量级、无状态的接口设计风格,通过HTTP方法(GET、POST、PUT、DELETE)操作资源,使用JSON或XML格式传输数据。在PHP中,通过定义路由、创建控制器、处理HTTP请求和响应等步骤实现RESTful API,并强调了安全性的重要性。
22 2
|
20天前
|
前端开发 关系型数据库 API
深入浅出后端开发——从零到一构建RESTful API
本文旨在为初学者提供一个关于后端开发的全面指南,特别是如何从零开始构建一个RESTful API。我们将探讨后端开发的基本概念、所需技术栈、以及通过实际案例展示如何设计和实现一个简单的RESTful API。无论你是完全的新手还是有一定编程基础的开发者,这篇文章都将为你提供实用的知识和技巧,帮助你在后端开发的道路上迈出坚实的一步。

热门文章

最新文章

下一篇
无影云桌面