【问题标题】:Apigee policy mediation - assign message / extract variablesApigee 政策中介 - 分配消息/提取变量
【发布时间】:2016-06-20 14:17:21
【问题描述】:

我通过 Apigee Edge 通过 REST 接口公开 JSON。

在外部,API 使用者将看到以下 API 规范:

即创建客户。

POST /customers?api_key=ABC123
{
   "name": "John",
   "surname": "Smith"
} 

我已应用以下政策: 1.验证API Key 2. 移除 API Key

我想知道在调用我的下游系统时如何使用提取/分配消息策略来实现以下“重构”请求负载。

POST /downstream-customer-service
{
   "correlationId": "<generated guid>",
   "data": {
      "name": "John",
      "surname": "Smith"      
   }
}

所以,我需要: 1.移动原始请求体,并将其添加到“数据”元素 2.生成一个GUID并分配给“correlationId”

我假设我还需要一个 javascript 策略?或者这可以仅在 javascript 策略中实现吗?

提前谢谢你。

【问题讨论】:

    标签: javascript apigee


    【解决方案1】:

    我使用了 JavaScript 策略,并将其应用于 Target Endpoint PreFlow:

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

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 2014-03-07
      • 1970-01-01
      • 1970-01-01
      • 2022-07-11
      • 2014-01-30
      • 2018-02-19
      • 2020-03-30
      • 2015-11-02
      相关资源
      最近更新 更多