Javascript Apigee策略中介-分配消息/提取变量
我通过Apigee Edge公开了一个JSON over REST接口 在外部,API使用者将看到以下API规范: i、 e.创建客户Javascript Apigee策略中介-分配消息/提取变量,javascript,apigee,Javascript,Apigee,我通过Apigee Edge公开了一个JSON over REST接口 在外部,API使用者将看到以下API规范: i、 e.创建客户 POST /customers?api_key=ABC123 { "name": "John", "surname": "Smith" } 我采用了以下政策: 1.验证API密钥 2.删除API密钥 我想知道在调用下游系统时,如何使用提取/分配消息策略来实现以下“重构”请求负载 POST /downstream-customer-service
POST /customers?api_key=ABC123
{
"name": "John",
"surname": "Smith"
}
我采用了以下政策:
1.验证API密钥
2.删除API密钥
我想知道在调用下游系统时,如何使用提取/分配消息策略来实现以下“重构”请求负载
POST /downstream-customer-service
{
"correlationId": "<generated guid>",
"data": {
"name": "John",
"surname": "Smith"
}
}
邮政/下游客户服务
{
“correlationId”:“”,
“数据”:{
“姓名”:“约翰”,
“姓氏”:“史密斯”
}
}
因此,我需要:
1.移动原始请求主体,并将其添加到“数据”元素中
2.生成GUID并将其分配给“correlationId”
我想我还需要一个javascript策略?或者这只能在javascript策略中实现吗
提前感谢。我使用了JavaScript策略,并将其应用于目标端点预流:
var This = (function() {
self.generateUUID = function(a) {
// UUID4 generation: https://gist.github.com/jed/982883
return a?(a^Math.random()*16>>a/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,self.generateUUID);
},
self.modifyPayload = function(data, generateCorrelationId) {
var newPayload = {
"data": data
};
if(generateCorrelationId)
newPayload["correlationId"] = self.generateUUID();
return newPayload;
}
return self;
})();
var modifiedData = This.modifyPayload(context.targetRequest.body.asJSON);
context.setVariable("context.targetRequest.body", modifiedData);