В моей системе 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
. Плохой отступ.