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
, , exp
aud
nbf
sub
, 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 |