是否可以在不使用Oracle MCS中的连接器的情况下创建自定义API?

时间:2017-01-09 12:51:48

标签: oracle-maf mcs

我想在不使用连接器的情况下创建自定义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”,我可以获取详细信息

有可能吗?

3 个答案:

答案 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参数传入。