Можем ли мы использовать $ ref в x-mediation-script? - PullRequest
0 голосов
/ 14 октября 2019

Я собираюсь жестко закодировать некоторые данные, используя x-mediation-script. Где, как я хочу использовать $ ref, который будет вызываться в setPayloadjson. Возможно ли это сделать? нужно предложение с любым из образцов

"x-mediation-script": "mc.setProperty('CONTENT_TYPE', 'application/json');mc.setPayloadJSON('$ref', '#/definitions/out');"

"definitions":{
  "out":{
    "type" : "object",
    "required": ["NAME"],
    "properties": {
      "NAME2": {"type": "string"},
      "NAME3": {"type": "string"},
      "NAME3": {"type": "string"},
      "NAME4": {"type": "string"},

    }
    }
  }

1 Ответ

1 голос
/ 05 ноября 2019

Невозможно получить доступ к содержимому сваггера из скрипта-посредника, используя $ref из-за,

  1. x-mediation-script находится в JS и не может использовать синтаксис сваггера в коде.
  2. API Manager не обрабатывает скрипт. Поэтому при публикации API в файл синапса копируется только содержимое сценария x-mediation-script.

В качестве решения создайте переменную JS в x-mediation-script и используйте ее.

    mc.setProperty('CONTENT_TYPE', 'application/json'); // Set the content type of the payload to the message context
    var town = mc.getProperty('uri.var.town');          // Get the path parameter 'town' and store in a variable
    mc.setPayloadJSON('{ "Town" : "'+town+'"}');        // Set the new payload to the message context.
...