当前位置:网站首页>第十七章 源代码文件 REST API 教程(二)
第十七章 源代码文件 REST API 教程(二)
2022-08-05 20:06:00 【yaoxin521123】
第十七章 源代码文件 REST API 教程(二)
获取在命名空间中定义的源代码文件
要获取有关命名空间中源代码文件的信息:
- 首先,使用
GetDocNames方法获取文件的名称。 - 然后用
GetDoc方法获取一个文件的内容,也可以用GetDocs方法获取多个文件的内容。 - 如果要提高应用程序的网络效率,可以保留源代码文件的名称和内容的本地缓存,并使用
GetModifiedDocNames方法仅获取内容发生变化的源代码文件的名称或使用带有If-None-Match HTTP标头的GetDoc方法。
GetDocNames 方法返回映射到命名空间的所有数据库中的所有源代码文件的名称。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"content": [
{
"name": "%Api.DocDB.cls",
"cat": "CLS",
"ts": "2016-08-03 20:01:42.000",
"upd": true,
"db": "IRISLIB",
"gen": false
},
...
{
"name": "EnsProfile.mac",
"cat": "RTN",
"ts": "2003-09-19 13:53:31.000",
"upd": true,
"db": "INVENTORYR",
"gen": false
},
...
{
"name": "xyz.mac",
"cat": "RTN",
"ts": "2016-08-11 15:05:02.167",
"upd": false,
"db": "INVENTORYR",
"gen": false
}
]
}
}
以下 GetDoc 调用返回 xyz.mac 文件的内容:
http://localhost:52773/api/atelier/v1/INVENTORY/doc/xyz.mac
此调用返回:
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"name": "xyz.mac",
"db": "INVENTORYR",
"ts": "2016-09-14 14:10:16.540",
"upd": false,
"cat": "RTN",
"status": "",
"enc": false,
"flags": 0,
"content": [
"ROUTINE xyz",
"xyz ;",
" w \"hello\""
]
}
}
在命名空间中创建新文件或更新现有文件
要在命名空间中创建新文件或更新现有文件,请使用 PutDoc 方法。例如,以下 REST 调用在 INVENTORY 命名空间中创建一个新的 xyz.mac 源代码文件,或者,如果 xyz.mac 文件存在,则此调用将文件的原始定义替换为新定义。如果要更新新文件,则必须指定 HTTP 标头 If-None-Match 以标识文件的当前版本,或指定 ?ignoreConflict=1 URL 参数以绕过版本检查。有关详细信息,请参阅参考部分中的 PutDoc。
PUT http://localhost:52773/api/atelier/v1/INVENTORY/doc/xyz.mac
应该指定 Content-Type application/json 和以下 JSON 消息:
{
"enc": false,
"content": [
"ROUTINE xyz",
"xyz ;",
" w \"hello\""
]
}
该调用返回以下 JSON 消息。它显示源代码文件已在 INVENTORYR 数据库中创建,该数据库是 INVENTORY 命名空间中例程的默认数据库。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"name": "xyz.mac",
"db": "INVENTORYR",
"ts": "2016-09-14 14:10:16.540",
"upd": false,
"cat": "RTN",
"status": "",
"enc": false,
"flags": 0,
"content": []
}
}
如果要更新或创建二进制文件,请为 enc 指定一个真值,并将二进制内容作为二进制值的 base64 编码的块数组包含在内。
边栏推荐
猜你喜欢
随机推荐
【图像分类】Vision Transformer理论解读+实践测试
codeforces:D. Chip Move【dp + 逆向思维考虑】
【StoneDB子查询优化】subquery子查询-优化exists场景的join查询优化器的处理-100GB数据量测试
开发之JS|通过原生来实现一个简单的拦截器功能
“星辰大海”开启 孙宇晨为人类未来付出的一张“超额门票”
Aurora push custom sound stepping record (continuous update)
第06篇:池化技术
【UiPath2022+C#】UiPathExcel 和数据表
降了!京东物流全体员工公积金调整,由12%降到5%!
Rust学习笔记:2.1-2.3 猜数游戏
【HMS core】【FAQ】push kit、分析服务、视频编辑服务典型问题合集3
js计算数组中每个元素出现的次数
【StoneDB模块介绍】工具类
SwiftUI case: size adaptive text box
HCIP第十八天笔记
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类(社区检测)和可视化|数据分享
Kettle【实践 06】使用 HTTP client 获取 GPC 全球商品分类代码 JSON 数据处理入库全流程(云资源分享:ktr+数据.sql)
Flutter 中视频的播放
RAID磁盘阵列详解
JS高阶(二)Symbol

![GO[一起来学习Go吧]](/img/8b/c745778eebca20955ac6ee66ef2d39.png)







