Partilhar via


Proxy API

O Dev Proxy vem com uma API da Web que permite que você interaja com o proxy programaticamente. A API está disponível na porta especificada nas configurações de proxy.

Swagger

A API é documentada usando Swagger. Você pode acessar a interface do usuário do Swagger navegando até http://localhost:<apiPort>/swagger no navegador.

Operações

A lista a seguir mostra as operações de API disponíveis.

GET /proxy

Retorna uma instância de com informações sobre a instância de Proxy de ProxyInfo Desenvolvimento em execução no momento.

Exemplo: obter informações sobre a instância do Proxy de Desenvolvimento em execução no momento

Pedido:

GET http://localhost:8897/proxy

Resposta:

200 OK

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

POST /proxy

Controla a instância do Proxy de Desenvolvimento em execução no momento.

Exemplo: iniciar a gravação

Pedido:

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

{
  "recording": true
}

Resposta:

200 OK

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

Exemplo: parar a gravação

Pedido:

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

{
  "recording": false
}

Resposta:

200 OK

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

POST /proxy/jwtToken

Gera um JSON Web Token (JWT).

Pedido:

POST http://localhost:8897/proxy/jwtToken
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
}

Nota

As declarações registradas (por exemplo, iss, , sub, aud, nbfexp, iat, ) jtisão adicionadas automaticamente ao token. Se você especificar qualquer uma dessas declarações na solicitação, a API ignorará os valores fornecidos.

Resposta:

200 OK

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

POST /proxy/mockrequest

Levanta um pedido simulado. Equivalente a pressionar w no console onde o Dev Proxy está sendo executado.

Pedido:

POST http://localhost:8897/proxy/mockrequest

Resposta:

202 Accepted

GET /proxy/rootCertificate?format=crt

Baixa a chave pública do certificado raiz no formato PEM (Privacy Enhanced Mail) que o Dev Proxy usa para descriptografar solicitações HTTPS. Essa API é útil quando você deseja confiar no certificado raiz em seu host enquanto executa o Proxy de Desenvolvimento em um contêiner do Docker.

Neste momento, o único formato suportado é crt. A API retorna um erro 400 Bad Request se você especificar qualquer outro formato ou não especificar um formato.

Pedido:

GET http://localhost:8897/proxy/rootCertificate?format=crt

Resposta:

content-type: application/x-x509-ca-cert

-----BEGIN CERTIFICATE-----
[base64 encoded certificate]
-----END CERTIFICATE-----

POST /proxy/stopproxy

Desliga graciosamente o Dev Proxy.

Pedido:

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

Resposta:

202 Accepted

Modelos

ProxyInfo

Informações sobre a instância do Dev Proxy em execução no momento.

Propriedade Type Description
recording boolean Se o proxy está atualmente gravando solicitações
configFile string Caminho para o arquivo de configuração que o Proxy de Desenvolvimento está usando (somente leitura)

JwtOptions

Opções para gerar um token JWT.

Propriedade Type Description
name string O nome do usuário para o qual criar o token
audience string[] As audiências para as quais criar o token
issuer string[] O emissor do token
roles string[] Uma declaração de função a ser adicionada ao token
scopes string[] Uma declaração de escopo para adicionar ao token
claims KeyValuePair Declarações para adicionar ao token
validFor number A duração (em minutos) para a qual o token é válido
signingKey string A chave a ser usada para assinar o token. Deve ter pelo menos 32 caracteres. Se não for especificado, usa uma chave gerada aleatoriamente.

JwtInfo

Informações sobre um token JWT.

Propriedade Type Description
token string O token JWT