Compartilhar via


Proxy API

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

Swagger

A API é documentada usando o 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 do ProxyInfo Dev Proxy em execução no momento.

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

Solicitação:

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 gravação

Solicitação:

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

Solicitação:

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 JWT (Token Web JSON).

Solicitação:

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
}

Observação

As declarações registradas (por exemplo, iss, , sub, aud, exp, nbf, 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

Gera uma solicitação simulada. Equivalente a pressionar w no console em que o Dev Proxy está sendo executado.

Solicitação:

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 (Email Avançado de Privacidade) que o Proxy de Desenvolvimento 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 com suporte é crt. A API retornará um erro de 400 Solicitações Incorretas se você especificar qualquer outro formato ou não especificar um formato.

Solicitação:

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 normalmente o Dev Proxy.

Solicitação:

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 Descrição
recording boolean Se o proxy está registrando solicitações no momento
configFile string Caminho para o arquivo de configuração que o Dev Proxy está usando (somente leitura)

JwtOptions

Opções para gerar um token JWT.

Propriedade Type Descrição
name string O nome do usuário para o qual criar o token
audience string[] Os públicos-alvo para os 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 a ser adicionada ao token
claims KeyValuePair Declarações a serem adicionadas ao token
validFor number A duração (em minutos) pela 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 Descrição
token string O token JWT