2017-01-09 27 views
0

我想创建自定义API,而不使用connectors.I想提供我的数据,然后希望通过自定义API在移动设备中访问它们。是否可以在不使用Oracle MCS中的连接器的情况下创建自定义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 “/移动/ customtest /的GetList/PendingList?PERSON_ID = 3435”,我可以得到细节

是否有可能?

+0

您能否澄清您的要求?当你说你不想使用连接器时,这与你描述的有效载荷有什么关系?你是否只想在自定义API中对响应进行硬编码以包含上述有效内容,但是,您希望通过JSON数组搜索person_id = 3435? –

+0

是的...我想硬编码响应并搜索JSON数组。 – CodeWriter

+0

我不认为这是可能的。请参阅Anand的建议,将您的数据加载到MCS表格中,然后使用您的自定义API以编程方式进行搜索 – Joe

回答

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

+0

从我的理解,我可以做同样的JSON数组响应? – CodeWriter

0

添加文件如果不希望使用MCS连接器,使用平台的API,MCS提供。您可以在MCS中创建表格。然后使用Custom Apis从表中获取数据。

+0

OP仍然需要使用数据加载表格。他将无法在自定义API中搜索“静态”JSON。平台数据库表的文档位于以下位置:http://docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/database-apis.html#GUID-F7AA3E02-7679-4E1E-8792-C6C80042F362 – Joe

+0

Didn 't得到你所说的 –

+0

他必须将他的数据存储在数据库API中,然后可以搜索并返回结果 - 他不必使用连接器。 DB API是通过REST调用访问和操作的。所以他需要一些自定义的代码来做他想做的事情。 – Joe

0

什么OP想要实现目前还不清楚,但在纯回答这个问题围绕搜索硬编码的JSON数组,并返回结果,下面的代码显示了基于“员工”阵列这样一个例子:

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]); 
     } 
    }); 
    }; 

请注意雇员数组“filter”函数的使用,我们在这里传入一个匿名函数,该函数能够搜索employee元素,并返回匹配的“:id”作为URL参数传入。

+0

thanks.But我认为,我不能遵循这个过程的大JSON数组,所以我想在Oracle MCS中使用数据库管理。 – CodeWriter

相关问题