Поделиться через


API прокси-сервера

Прокси-сервер разработки поставляется с веб-API, который позволяет программно взаимодействовать с прокси-сервером. API доступен на порту, указанном в параметрах прокси-сервера.

Swagger

API задокументирован с помощью Swagger. Вы можете получить доступ к пользовательскому интерфейсу Swagger, перейдя к http://localhost:<apiPort>/swagger браузеру.

Операции

В следующем списке показаны доступные операции API.

GET /proxy

Возвращает экземпляр ProxyInfo с информацией о текущем экземпляре прокси-сервера разработки.

Пример. Получение сведений о текущем экземпляре прокси-сервера разработки

Запрос:

GET http://localhost:8897/proxy

Ответ:

200 OK

{
  "recording": false,
  "configFile": "/Users/user/dev-proxy/devproxyrc.json"
}

POST /proxy

Управляет текущим экземпляром прокси-сервера разработки.

Пример: начало записи

Запрос:

POST http://localhost:8897/proxy
content-type: application/json

{
  "recording": true
}

Ответ:

200 OK

{
  "recording": true,
  "configFile": "/Users/user/dev-proxy/devproxyrc.json"
}

Пример: остановка записи

Запрос:

POST http://localhost:8897/proxy
content-type: application/json

{
  "recording": false
}

Ответ:

200 OK

{
  "recording": false,
  "configFile": "/Users/user/dev-proxy/devproxyrc.json"
}

POST /proxy/raisemockrequest

Вызывает макетный запрос. Эквивалент нажатия клавиши w в консоли, в которой запущен прокси-сервер разработки.

Запрос:

POST http://localhost:8897/proxy/raisemockrequest

Ответ:

202 Accepted

POST /proxy/stopproxy

Корректно завершает работу прокси-сервера разработки.

Запрос:

POST http://localhost:8897/proxy/stopproxy

Ответ:

202 Accepted

POST /proxy/createJwtToken

Создает токен JWT.

Запрос:

POST http://localhost:8897/proxy/createJwtToken
Content-Type: application/json

{
    "name": "Dev Proxy",
    "audiences": [
        "https://myserver.com"
    ],
    "issuer": "dev-proxy",
    "roles": [
        "admin"
    ],
    "scopes": [
        "Post.Read",
        "Post.Write"
    ],
    "claims": {
        "claim1": "value",
        "claim2": "value"
    },
    "validFor": 60
}

Примечание.

Зарегистрированные утверждения (напримерiss, , expaudnbfsub, iat) jtiавтоматически добавляются в маркер. При указании любого из этих утверждений в запросе значения, которые вы указали, будут игнорироваться.

Ответ:

200 OK

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IkRldiBQcm94eSIsInN1YiI6IkRldiBQcm94eSIsImp0aSI6IjkyZjM5YzciLCJzY3AiOlsiUG9zdC5SZWFkIiwiUG9zdC5Xcml0ZSJdLCJyb2xlcyI6ImFkbWluIiwiY2xhaW0xIjoidmFsdWUiLCJjbGFpbTIiOiJ2YWx1ZSIsImF1ZCI6Imh0dHBzOi8vbXlzZXJ2ZXIuY29tIiwibmJmIjoxNzI3MTk4MjgyLCJleHAiOjE3MjcyMDE4ODIsImlhdCI6MTcyNzE5ODI4MiwiaXNzIjoiZGV2LXByb3h5In0.E_Gj9E58OrAh9uHgc-TW8DYfq8YHFrhaUTpKA4yXEIg"
}

Модели

ProxyInfo

Сведения о текущем экземпляре прокси-сервера разработки.

Свойство Type Описание
recording boolean Указывает, записывает ли прокси-сервер запросы
configFile string Путь к файлу конфигурации, используемому прокси-сервером разработки (только для чтения)

JwtOptions

Параметры создания токена JWT.

Свойство Type Описание
name string Имя пользователя, для создания маркера для
audience string[] Аудитории, для создания маркера для
issuer string[] Издатель маркера
roles string[] Утверждение роли для добавления в токен
scopes string[] Утверждение области для добавления в токен
claims KeyValuePair Утверждения для добавления в токен
validFor number Длительность (в минутах), для которой маркер действителен
signingKey string Ключ, используемый для подписи маркера. Должно быть не менее 32 символов длиной. Если не указано, используется случайный ключ.

JwtInfo

Сведения о токене JWT.

Свойство Type Описание
token string Токен JWT