Розділи політики: inbound, outbound, backend, on-error.
Області політики: global, product, API, operation.
Політика redirect-content-urls перезаписує (маскує) посилання в тексті відповіді так, щоб кожна з них вказувала на еквівалентну посилання через шлюз. Використовуйте в розділі outbound, щоб перезаписати посилання тексту відповіді так, щоб вони вказували на шлюз. Використовуйте в розділі inbound для зворотного ефекту.
Ця політика не зраджує значення заголовка, наприклад заголовка Location. Щоб змінити значення заголовка, використовуйте політику set-header.
правило політики
Розділи політики: inbound, outbound.
Області політики: global, product, API, operation.
Завдання внутрішньої служби
правило політики
У цьому прикладі політика завдання внутрішньої служби надсилає запити на основі значення версії, переданого в рядку запиту у внутрішню службу, відмінну від зазначеної в API.
Якщо потрібні додаткові перетворення запиту, можна скористатися іншими політиками перетворення. Наприклад, щоб видалити параметр запиту версії після направлення запиту в конкретну серверну частину версії, для видалення атрибута надлишкової версії можна використовувати політику Налаштування параметра рядка запиту.
У цьому прикладі політика направляє запит до внутрішньої служби Service Fabric, використовуючи рядок запиту userId як ключ секції і використовуючи первинну репліку секції.
Розділи політики: inbound, backend.
Області політики: global, product, API, operation.
завдання тексту
Використовуйте політику set-body. щоб задати текст повідомлення для вхідних і вихідних запитів. Для доступу до тексту повідомлення можна використовувати властивість context.Request.Body або context.Response.Body в залежності від того, де знаходиться політика: в розділі inbound або outbound.
Зверніть увагу, що за замовчуванням при доступі до тексту повідомлення за допомогою context.Request.Body або context.Response.Body вихідний текст повідомлення втрачається і його необхідно поставити, повернувши текст назад в вираз. Щоб зберегти вміст тексту, при доступі до повідомлення надайте параметру preserveContent значення true. Якщо для параметра preserveContent задано значення true і в виразі повертається інший текст, використовується повертається текст.
Врахуйте наступні рекомендації при використанні політики set-body.
- Якщо для повернення нового або оновленого тексту використовується політика set-body. для параметра preserveContent не потрібно задавати значення true. так як ви явно вказуєте нове вміст тексту.
- Зберігати вміст відповіді у вхідному конвеєрі не має сенсу, так як відповіді ще немає.
- Зберігати вміст запиту в вихідному конвеєрі не має сенсу, так як на цьому етапі запит вже був відправлений в серверну частину.
- Якщо ця політика використовується при відсутності тексту повідомлення, наприклад у вхідному параметрі GET, виникає виключення.
Додаткові відомості див. У розділах context.Request.Body. context.Response.Body і IMessage в таблиці Мінлива контексту.
правило політики
Приклад літерального тексту
Приклад доступу до тексту як до рядка Зверніть увагу, що ми зберігаємо вихідний текст запиту, щоб пізніше можна було звернутися до нього в конвеєрі.
Приклад доступу до тексту як до об'єкта JObject Зверніть увагу, що ми не резервували вихідний текст запиту, тому спроба отримати до нього доступ пізніше в конвеєрі призведе до виникнення виключення.
Фільтрація відповіді в залежності від продукту
Використання шаблонів Liquid з політикою set-body
У політиці set-body можна налаштувати використання мови шаблонів Liquid для перетворення тексту запиту або відповіді. Це може бути дуже ефективним, коли потрібно повністю змінити формат повідомлення.
Реалізація шаблонів Liquid, використовувана в політиці set-body. налаштовується в режимі C #. Це особливо важливо при виконанні дій, таких як фільтрація. Наприклад, якщо застосовується фільтр по даті, то необхідно використовувати стиль Pascal і форматування дати C #, як в наступному прикладі:
Щоб за допомогою шаблону Liquid правильно виконати прив'язку до тексту XML, використовуйте політику set-header. Задайте для Content-Type значення application / xml або text / xml (або будь-який інший тип, який закінчується на + xml). Для тексту JSON значення має бути application / json або text / json (або будь-який інший тип, який закінчується на + json).