我想在不使用连接器的情况下创建自定义API。我想提供我的数据,然后想要通过自定义API在移动设备中访问它们。
"getLIST": {
"PendingList": [
{
"TRANSACTION_ID": "1612342887",
"TRANSACTION_STEP_ID": "2344",
"SIT_NAME": "Certificate Request",
"PERSON_ID": "3435",
"FROM_USER": "Rahul",
"STATUS": "Pending",
"FUTURE1": null,
"FUTURE2": null,
"FUTURE3": null,
"FUTURE4": null,
"FUTURE5": null
},{
"TRANSACTION_ID": "161234887",
"TRANSACTION_STEP_ID": "143234840",
"SIT_NAME": "Certificate Request",
"PERSON_ID": "3436",
"FROM_USER": "Sashanka",
"STATUS": "Pending",
"FUTURE1": null,
"FUTURE2": null,
"FUTURE3": null,
"FUTURE4": null,
"FUTURE5": null
},
]
}
如果我在响应中提供了以上JSON有效负载,并通过此自定义api“/ mobile / customtest / getLIST / PendingList?PERSON_ID = 3435”,我可以获取详细信息
有可能吗?
答案 0 :(得分:0)
绝对!按照文档here和视频here进行操作。 虽然,是的,我们通常使用自定义API作为通过连接器的另一个服务调用的包装器,您不必这样做,如果您只想返回固定/静态有效负载,您可以将其添加为响应GET电话。
但是 - 如果你希望搜索阵列等,那么这是更多的工作,应该在服务中完成 - 因此需要连接器。
这里的说明: 添加基础知识(API的名称,消息媒体类型和简要说明)。
通过设置资源及至少一种方法来定义端点。
设置访问安全性。
在定义至少一个资源后测试您的端点。 要完全填写API,请使用API Designer帮助您为强大的API添加必要组件:
提供API元数据(即API的基本属性,即API显示名称,API名称和简短描述),或者,如果您已经拥有包含API配置的RAML文档,则您可以将其上传到API Designer。从RAML文档中提取所有信息(元数据,资源,方法和消息体的模式)并将其加载到API Designer中,以便您快速继续测试端点或编辑API配置。要提供有效的RAML文件,请参阅RAML。
添加一个或多个根和嵌套资源。
添加处理资源的方法。
创建一个描述数据主体的模式。
在设计时使用样本数据测试您的终端,并根据需要进行任何更改。
允许匿名访问您的API或指定哪些角色可以访问它。
添加自定义API的文档
答案 1 :(得分:0)
如果您不想使用MCS连接器,请使用MCS提供的平台Apis。您可以在MCS中创建表。然后使用Custom Apis从表中获取数据。
答案 2 :(得分:0)
OP想要实现的目标仍然不清楚,但在纯粹回答有关搜索硬编码JSON数组并返回结果的问题时,以下代码显示了基于" Employees"阵列:
module.exports = function(service) {
var employees = [
{
"id": "103",
"username": "rbarkhouse",
"firstName": "Rick",
"lastName": "Barkhouse"
},
{
"id": "107",
"username": "kbrown",
"firstName": "Karen",
"lastName": "Brown"
},
{
"id": "108",
"username": "ldavies",
"firstName": "Larry",
"lastName": "Davies"
}
];
service.get('/mobile/custom/hrapi/employee', function(req,res) {
res.send(200, employees);
});
service.get('/mobile/custom/hrapi/employee/:id', function(req,res) {
var id = req.params.id;
var employee =
employees.filter(function(el) { return el.id == id; });
if (employee == null) {
res.send(404);
} else {
res.send(200, employee[0]);
}
});
};
请注意使用employees数组" filter"函数,我们传入一个匿名函数,它能够搜索返回的匹配":id"作为URL参数传入。