Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Important
Como v3.3.1, cada solicitação de API de Proxy de Desenvolvimento requer o Authorization: Bearer <token> cabeçalho; solicitações sem um retorno 401 Unauthorizedde token válido.
O Dev Proxy vem com uma API Web que permite interagir com o proxy programaticamente. A API está disponível no endereço IP e na porta especificadas nas configurações de proxy.
O Proxy de Desenvolvimento gera um token exclusivo para cada instância em execução e o armazena em um arquivo acessível apenas ao usuário que iniciou a instância. Obter o token usando devproxy status ou devproxy api token. Quando a CI variável de ambiente estiver definida, use devproxy api token porque o Proxy de Desenvolvimento omite o token do status e da saída de inicialização.
Para usar um token conhecido em vez de um gerado, por exemplo, quando outra ferramenta iniciar o Proxy de Desenvolvimento e chamar sua API, defina a variável de ambiente antes de iniciar o DEV_PROXY_API_TOKEN Proxy de Desenvolvimento ou passe-o usando a opção --env . O valor deve ter pelo menos 32 caracteres, sem contar o preenchimento à direita = e pode conter apenas letras ASCII, dígitos e os caracteres-, ., , _, ~e+/, opcionalmente, seguidos pelo = preenchimento. O Proxy de Desenvolvimento corta o espaço em branco ao redor. Se o valor não for válido, o Proxy de Desenvolvimento não será iniciado e sairá com um erro. O Proxy de Desenvolvimento ainda armazena o token, portanto devproxy status, devproxy api tokene devproxy stop continua funcionando.
Inclua o token no Authorization cabeçalho:
Authorization: Bearer <token>
Solicitações sem um retorno 401 Unauthorizedde token válido. As solicitações do navegador também devem vir de uma origem listada na apiAllowedOrigins configuração. Outras origens retornam 403 Forbidden.
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
Authorization: Bearer <token>
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. Para iniciar e parar a gravação de um script ou pipeline de CI, consulte Registro de scripts e CI.
Exemplo: iniciar gravação
Solicitação:
POST http://localhost:8897/proxy
Authorization: Bearer <token>
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
Authorization: Bearer <token>
content-type: application/json
{
"recording": false
}
Resposta:
200 OK
{
"recording": false,
"configFile": "/Users/user/dev-proxy/devproxyrc.json"
}
Parar gravação e gerar relatórios
Parar a gravação faz mais do que parar de capturar solicitações. Quando você envia {"recording": false} enquanto o Proxy de Desenvolvimento está gravando, o Proxy de Desenvolvimento passa as solicitações gravadas para todos os plug-ins habilitados, na ordem em que estão listados no arquivo de configuração. Isso é o mesmo que pressionar s no console em que o Proxy de Desenvolvimento está em execução. Durante esta etapa:
- Os plug-ins de relatórios analisam as solicitações gravadas e produzem relatórios.
-
Os repórteres convertem os relatórios em arquivos. Cada repórter grava um arquivo para cada relatório, nomeado
<plugin>_<reporter>.<extension>, por exemplo,ExecutionSummaryPlugin_MarkdownReporter.md.<plugin>é o nome da instância do plug-in que produziu o relatório e<reporter>é o nome da instância do repórter. Se já existir um arquivo com esse nome, o repórter acrescentará um carimbo de data/hora, por exemplo,ExecutionSummaryPlugin_MarkdownReporter_20261105114500.md. - Os plug-ins do gerador, como o
OpenApiSpecGeneratorPlugin, gravam os arquivos que geram.
O Proxy de Desenvolvimento grava esses arquivos em seu diretório de trabalho atual, que é o diretório do qual você iniciou o Proxy de Desenvolvimento.
A API responde depois que todos os plug-ins terminam de processar as solicitações registradas. Dependendo dos plug-ins que você usa, por exemplo, plug-ins que chamam um modelo de idioma, essa etapa pode demorar um pouco, portanto, verifique se o cliente HTTP não atingiu o tempo limite muito cedo. Quando a resposta chega, os arquivos de relatório são gravados em disco.
O Proxy de Desenvolvimento também registra o progresso do processamento das solicitações registradas:
| Mensagem de log | Meaning |
|---|---|
DONE |
Todos os plug-ins terminaram de processar as solicitações gravadas. |
No requests to process |
Um plug-in não encontrou nenhuma solicitação gravada para analisar. |
An error occurred in a plugin |
Falha no plug-in. O Proxy de Desenvolvimento continua com o próximo plug-in e os logs DONE quando todos os plug-ins são concluídos. |
Se o Proxy de Desenvolvimento não estiver gravando quando você enviar {"recording": false}, o Proxy de Desenvolvimento não processará nenhuma solicitação, não gravará nenhum arquivo e não registrará em log DONE.
Dica
Se você parar o Proxy de Desenvolvimento usando POST /proxy/stopproxy durante a gravação, o Proxy de Desenvolvimento também processará as solicitações gravadas antes de sair. No entanto, essa API responde imediatamente, portanto, você precisa aguardar a saída do processo de Proxy de Desenvolvimento para saber que os relatórios estão prontos. Para saber exatamente quando os relatórios estão prontos, pare de gravar primeiro, aguarde a resposta e, em seguida, interrompa o Proxy de Desenvolvimento.
Para obter um script completo que inicia o Proxy de Desenvolvimento, controla a gravação por meio da API e aguarda a conclusão do Proxy de Desenvolvimento, consulte Usar Proxy de Desenvolvimento em cenários de CI/CD.
POST /proxy/jwtToken
Gera um JWT (Token Web JSON).
Solicitação:
POST http://localhost:8897/proxy/jwtToken
Authorization: Bearer <token>
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"
}
GET /proxy/logs
Retorna a saída do log do Proxy de Desenvolvimento. Equivalente ao logs comando. Esse ponto de extremidade só está disponível quando o Proxy de Desenvolvimento é executado no modo desanexado. Caso contrário, a API retornará 404 Not Found.
| Parâmetro de consulta | Descrição | Padrão |
|---|---|---|
lines |
Número de linhas a serem retornadas do final do log | 50 |
follow |
Quando true, transmite novas linhas de log como eventos enviados pelo servidor |
false |
since |
Retorna apenas as linhas registradas desde a data e hora especificadas. Use uma duração (por exemplo, , , , ) 1dou uma data e hora iso 8601 (por exemplo, 2026-01-24T14:00:00 ou 2026-01-24T14:00:00Z). 1h5m30s Se o carimbo de data/hora não incluir um deslocamento de fuso horário, o Proxy de Desenvolvimento usará o fuso horário local. |
n/a |
O since parâmetro filtra as linhas de log pela data e hora completas, tanto ao retornar linhas de log quanto ao transmiti-las. O Proxy de Desenvolvimento filtra cada solicitação quando ela é iniciada, portanto, uma solicitação iniciada antes da hora especificada não é retornada, mesmo que seja concluída posteriormente.
Por padrão, a API retorna as linhas de log como texto sem formatação. Para obter uma matriz JSON de entradas de log, defina o Accept cabeçalho como application/json. Para transmitir linhas de log como eventos enviados pelo servidor, defina o Accept cabeçalho como text/event-stream ou definido follow como true.
Solicitação:
GET http://localhost:8897/proxy/logs?lines=10
Authorization: Bearer <token>
Resposta:
200 OK
content-type: text/plain
[last 10 lines of the Dev Proxy log]
POST /proxy/mockrequest
Gera uma solicitação simulada. Equivalente a pressionar w no console em que o Dev Proxy está sendo executado. A API responde após a conclusão da solicitação simulada.
Solicitação:
POST http://localhost:8897/proxy/mockrequest
Authorization: Bearer <token>
Resposta:
204 No Content
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
Authorization: Bearer <token>
Resposta:
content-type: application/x-x509-ca-cert
-----BEGIN CERTIFICATE-----
[base64 encoded certificate]
-----END CERTIFICATE-----
POST /proxy/stopproxy
Desliga normalmente o Dev Proxy. Se o Proxy de Desenvolvimento estiver gravando, ele interromperá a gravação e gerará relatórios antes de sair. A API responde imediatamente, antes que o Proxy de Desenvolvimento termine de desligar.
Solicitação:
POST http://localhost:8897/proxy/stopproxy
Authorization: Bearer <token>
Resposta:
202 Accepted
O Proxy de Desenvolvimento retorna 202 Accepted assim que ele começa a desligar. A resposta não significa que o Proxy de Desenvolvimento foi encerrado. Durante o desligamento, Proxy de Desenvolvimento:
- Para de aceitar novas solicitações de proxy. Se o Proxy de Desenvolvimento for registrado como o proxy do sistema, ele restaurará as configurações de proxy do sistema anteriores. O Proxy de Desenvolvimento aguarda até cinco segundos para que as conexões abertas fechem e feche as conexões restantes.
- Interrompe a gravação, se a gravação estiver ativada e executa os plug-ins de relatório nas solicitações gravadas, da mesma forma que quando você para de gravar por conta própria. Quando os plug-ins são concluídos, o Proxy de Desenvolvimento grava os relatórios e os logs
DONE. - Remove as informações da instância e, portanto
devproxy statusdevproxy stop, não as lista mais. - Sai com o código
0de saída.
O Proxy de Desenvolvimento não remove seu certificado raiz do repositório de certificados confiável no desligamento. Para remover o certificado, use a remoção do certificado.
O desligamento normalmente leva alguns segundos. Pode levar mais tempo quando os plug-ins de relatórios processam uma gravação grande. Depois que o desligamento for iniciado, a API não poderá mais ser acessada, portanto, não faça a sondagem da API para verificar se o Proxy de Desenvolvimento foi encerrado. Em vez disso, use uma destas opções:
- Aguarde a ID do processo (PID) que
devproxy --detachimprime para sair. - Execute
devproxy status --pid <pid>até retornar o código1de saída, o que significa que a instância não está mais em execução. Para obter mais informações, consulte o status. - Se você estava gravando, verifique o log do Proxy de Desenvolvimento para a
DONEmensagem, que o Proxy de Desenvolvimento registra após a conclusão dos plug-ins de relatório. Para obter um exemplo, consulte Usar o Proxy de Desenvolvimento em cenários de CI/CD.
Por exemplo, para aguardar a saída de uma instância de Proxy de Desenvolvimento desanexada no Linux ou no macOS:
# DEVPROXY_PID is the PID that devproxy --detach printed
# TOKEN is the API token from devproxy api token
curl -X POST http://localhost:8897/proxy/stopproxy -H "Authorization: Bearer $TOKEN"
while ./devproxy/devproxy status --pid $DEVPROXY_PID > /dev/null 2>&1; do
sleep 1
done
Evite encerrar o processo de Proxy de Desenvolvimento com força, por exemplo, usando kill -9. Quando você encerra o processo dessa forma, o Proxy de Desenvolvimento não libera as configurações de proxy do sistema de gravação ou restauração. Para interromper o Proxy de Desenvolvimento da linha de comando, use stop, que chama essa API e aguarda até 10 segundos para o Proxy de Desenvolvimento sair.
Modelos
ProxyInfo
Informações sobre a instância do Dev Proxy em execução no momento.
| Propriedade | Tipo | 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 | Tipo | Descrição |
|---|---|---|
name |
string |
O nome do usuário para o qual criar o token |
audiences |
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 | Tipo | Descrição |
|---|---|---|
token |
string |
O token JWT |