Swagger: внедрение произвольных http-заголовков

Если при необходимости использования web api через swagger необходимо отправлять кастомные http-заголовки, то это можно сделать очень просто
  1. открываем SwaggerConfig
  2. ищем метод, переданный в EnableSwaggerUi
  3. вызываем InjectJavaScript у объекта, типа SwaggerUiConfig (передаётся в качестве первого аргумента обработчика)
  4. В качестве параметров необходимо передать :
    1. сборку, содержащую js в качестве рекурса
    2. название ресурса
т.е. в коде это выглядит примерно так:

Сам скрипт был добавлен в сборку WebApiDoc, в каталог Scripts с именем файла customHeaders.js


Файл js в свойствах отмечаем как Embedded Resource

Собственно уже можно запускать и наблюдать результат:

Теперь рассмотрим частный случай:
  1. Необходимо с каждым запросом отправлять http-заголовки X-TOKEN и Company
  2. И по желанию - заголовок Mobile
  3. Убираем input для api_key
В идеале хочется в шапку добавить нужные текстовые поля, и чтобы они, при возможности, заполнялись автоматически, но чтобы мы имели возможность изменять их значения

Описывать каждую строку особы смысла не вижу
Если непонятно - всё равно важно лишь то, что метод addCustomHeaderEditor добавит тестовое поле для редактирования данных конкретного http-заголовка

Пример работы скрипта:

В общем - вот и всё, какие угодно кастомные заголовки передавать совсем просто

Естественно можно доработать так, чтобы можно было динамически самому определять название заголовка и его значение, но это, на мой взгляд, противоречит цели использования подобных средств как swagger

Комментариев нет:

Отправить комментарий

Можете оставить свой комментарий