Express Шлюз: добавить параметры с политикой Request-Transformer, но при условии - PullRequest
0 голосов
/ 05 марта 2020

В моей системе Node у меня есть сервер, предоставляющий некоторый API, доступный через Express шлюз. Я бы хотел добавить несколько параметров в req.body в соответствии с приложением, использующим мой API.

Для этого я использую персонализированное значение scope. Например, у меня есть App1 и App2 (с их учетными данными), использующие мой API. Итак, в например, учетные данные , я добавляю область app1 к учетным данным App1 и app2 к областям учетных данных App2.

В gateway.config.yml файле, который я пишу:

   ...
      - request-transformer:   
        - condition:
          name: allOf
          conditions:
              -
                name: regexpmatch
                match: ^/user/signup?(.*)$                 
              -
                name: expression
                expression: "apiEndpoint.scopes.indexOf('app1')>=0"
        - action:
          body:
            add:
              custom_field: "'app1'"   
        - condition:
          name: allOf
          conditions:
              -
                name: regexpmatch
                match: ^/user/signup?(.*)$                 
              -
                name: expression
                expression: "apiEndpoint.scopes.indexOf('app2')>=0"
        - action:
          body:
            add:
              custom_field: "'app2'"   

Но я получаю эту ошибку:

     error: Policy request-transformer params validation failed: 
data should have required property '.headers', 
data should have required property '.body', 
data should match some schema in anyOf
    (node:17362) UnhandledPromiseRejectionWarning: Error: POLICY_PARAMS_VALIDATION_FAILED

============

На самом деле наблюдаем преобразование JSON, action не было атрибутом request-transformer. Плохой отступ.

1 Ответ

0 голосов
/ 05 марта 2020

Вы должны обратить внимание на отступ yaml, который вы указали неверно, и поэтому конечный объект, который Express Gateway пытается переварить, неверен.

Я предлагаю вам использовать Yaml2 Json Конвертер, который определенно поможет вам увидеть окончательную структуру и поможет отладить проблему.

Cheers!

V.

...