Apidog

Plataforma Colaborativa All-in-one para Desenvolvimento de API

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

Como Recuperar Parâmetros de Solicitação nos Scripts de Pré/Pós-Solicitação do Apidog?

Miguel Oliveira

Miguel Oliveira

Updated on novembro 29, 2024

Ao usar o Apidog para testes de API, pode haver momentos em que você precise extrair os parâmetros de solicitação da API de teste atual para outros fins. Por exemplo, considere uma API de criação de pedido para uma plataforma de e-commerce com o seguinte corpo de solicitação:

{"id": 12345,"products": [
    {"id": 1, "quantity": 2},
    {"id": 3, "quantity": 1}
  ],"shippingAddress": "xx Província xx Cidade xx Distrito","paymentMethod": "cartão_de_crédito"
}

Neste cenário, você pode querer:

  1. Extrair e Encriptar Parâmetros de Solicitação: Para proteger a privacidade, pode ser necessário encriptar o valor do parâmetro shippingAddress antes de enviá-lo.
  2. Armazenar Parâmetros de Solicitação como Variáveis: Você pode querer definir o parâmetro id como uma "variável temporária" para uso em testes de API subsequentes (como verificar o status do pedido).
  3. Validar Parâmetros de Solicitação: Antes de enviar a solicitação, pode ser necessário verificar se o parâmetro paymentMethod tem um valor válido.

Para lidar com isso, você pode extrair os parâmetros de solicitação da API usando o método pm.request. Você pode criar um script personalizado que imprime pm.request no console, permitindo visualizar várias informações dos parâmetros. Por exemplo:

// Informações dos parâmetros de solicitação da api atualconsole.log(pm.request);
pm.request

O request neste método refere-se ao objeto de solicitação da API. Em scripts de "Pré-solicitação", representa a "solicitação pendente", enquanto em scripts de "Pós-solicitação", refere-se à "solicitação enviada".

Você pode decidir se deve recuperar os parâmetros de solicitação atuais no script de pré-solicitação ou pós-solicitação, com base em suas necessidades:

  • Para parâmetros antes de enviar a solicitação: Use scripts de pré-solicitação.
  • Para parâmetros após enviar a solicitação: Use scripts de pós-solicitação.

Note que somente as modificações feitas nos scripts de "Pré-solicitação" são eficazes; alterações feitas nos scripts de "Pós-solicitação" não terão efeito.

Este artigo apresenta principalmente como obter parâmetros de solicitação da API atual através de scripts nas funcionalidades "Script de Pré-solicitação" e "Script de Pós-solicitação" do Apidog.

Para obter parâmetros de solicitação de outras APIs, você pode armazenar os parâmetros em variáveis de ambiente e, em seguida, lê-los, ou usar a funcionalidade "Testes". Com "Valores Dinâmicos", você pode ler diretamente os parâmetros de solicitação ou os dados de resposta de etapas anteriores (ou seja, outras APIs).

Escopo de Extração
botão

Guia passo a passo para extrair parâmetros de solicitação?

Recuperar a URL de Pré-solicitação

A URL de pré-solicitação é o endereço do serviço configurado em "Gerenciamento de Ambiente".

Recuperar a URL de Pré-solicitação

Para obter a URL de pré-solicitação da API atual, você pode usar os métodos pm.request.getBaseUrl() ou pm.request.baseUrl. Por exemplo:

// Obter a URL de pré-solicitação
let preUrl = pm.request.getBaseUrl();
console.log(preUrl);

// Ou
let baseUrl = pm.request.baseUrl;
console.log(baseUrl);
pm.request.getBaseUrl()

Se várias URLs de pré-solicitação estiverem configuradas, o script obterá a URL correspondente ao serviço especificado. Você pode revisar e gerenciar essas configurações através de "Editar-> Serviço (URL de Pré-solicitação)."

Configurações do serviço

Recuperar Parâmetros de Caminho

Parâmetros de caminho são parte da URL usada para especificar o caminho do recurso, frequentemente identificando recursos ou coleções específicas. No Apidog, os parâmetros de caminho são representados usando chaves {}, incluídos diretamente no caminho da URL. Por exemplo:

https://Apidogmock.com/xxx/xxx/store/products/{id}

Neste exemplo, {id} é um parâmetro de caminho que pode ser substituído dinamicamente. Você pode extrair parâmetros de caminho usando pm.request.url.path, que retorna um array contendo todos os nomes dos caminhos, permitindo o acesso preciso por meio da indexação do array:

// Obter parâmetros de caminho de pm.request.url.path
let getPathUrl = pm.request.url.path;

// Imprimir dados no consoleconsole.log(getPathUrl);
console.log(getPathUrl[4]);
Parâmetros de caminho substituídos

Recuperar Parâmetros de Consulta

Parâmetros de consulta são informações adicionais anexadas à URL, normalmente seguindo o ponto de interrogação ? e formatadas como pares chave-valor, separadas por &. Por exemplo:

https://Apidogmock.com/xxx/xxx/store/products/{id}?cart_id=42&region_id=43

Para extrair os parâmetros de consulta, use pm.request.url.query, que recupera todos os pares chave-valor. Você pode usar o método get() para buscar especificamente um parâmetro. Veja como extrair o parâmetro cart_id:

// Obter parâmetros de consulta de pm.request.url.query
let getQueryUrl = pm.request.url.query;

// Imprimir dados no consoleconsole.log(getQueryUrl);
console.log(getQueryUrl.get("cart_id"));
Recuperar parâmetros de consulta

Obter a URL Completa

Para obter a URL completa da solicitação da API, incluindo a URL de pré-solicitação, parâmetros de caminho e parâmetros de consulta, use o método pm.request.url.toString():

// Imprimir URL completa no consoleconsole.log(pm.request.url.toString());

Este método retorna uma string contendo todas as informações da URL, com substituições dinâmicas para parâmetros de caminho e todos os parâmetros de consulta.

Obter a URL Completa

Recuperar Parâmetros de Corpo

  • Para formato form-data: Form-data organiza dados em pares chave-valor, frequentemente usados para uploads de arquivos e envios de formulários complexos. Para obter parâmetros do corpo form-data, use pm.request.body.formdata, que retorna um objeto array:
// Quando o tipo do corpo é form-data
let formData = pm.request.body.formdata;

// Imprimir dados no consoleconsole.log(formData);
console.log(formData.get("email"));
console.log(formData.get("password"));
form-data
  • Para formato x-www-form-urlencoded: Semelhante ao form-data, x-www-form-urlencoded também usa pares chave-valor. Para obter esses parâmetros, use pm.request.body.urlencoded:
// Quando o tipo do corpo é x-www-form-urlencoded
let urlencoded = pm.request.body.urlencoded;

// Imprimir dados no consoleconsole.log(urlencoded);
console.log(urlencoded.get("email"));
console.log(urlencoded.get("password"));
Para formato x-www-form-urlencoded
  • Para formato raw, JSON ou XML: Use pm.request.body.raw para obter o conteúdo bruto do corpo, retornando uma string. Normalmente, você precisará analisá-la para acessar parâmetros específicos:
// Para formato raw, JSON ou XML
let formData = pm.request.body.raw;
// Analisar para objeto JSON
let jsonData = JSON.parse(formData);
// Imprimir dados no console
console.log(jsonData);
console.log(jsonData.email);
console.log(jsonData.password);
Para formato raw, JSON ou XML

Recuperar Parâmetros de Cabeçalho

Para recuperar os parâmetros de cabeçalho da solicitação, use pm.request.headers, que retorna um objeto array contendo todas as informações do cabeçalho da solicitação. Você pode localizar e extrair valores de parâmetros específicos usando a função get():

// Obter parâmetros de cabeçalho da solicitação
let headers = pm.request.headers;

// Imprimir dados no consoleconsole.log(headers);
console.log(headers.get("Accept"));

Perguntas Frequentes sobre a Recuperação de Parâmetros de Solicitação

Por que as variáveis referenciadas não estão sendo substituídas?

Se os parâmetros de solicitação da sua API estão fazendo referência a valores de variáveis de ambiente, mas não estão sendo substituídos por valores específicos no console, certifique-se de mover a "Substituição de Variáveis & Herança de Pai" para o início do seu script na seção de Pré-solicitação ou Pós-solicitação. Isso garante que todas as variáveis referenciadas (incluindo valores dinâmicos) sejam substituídas pelos conteúdos reais.

Apêndice

Métodos e Descrições

Método Descrição Finalidade
pm.request Obter informações dos parâmetros de solicitação da interface atual Acessar objeto de solicitação
pm.request.getBaseUrl() Obter URL de pré-solicitação Recuperar endereço do serviço
pm.request.baseUrl Obter URL de pré-solicitação (método alternativo) Recuperar endereço do serviço
pm.request.url.path Obter parâmetros de caminho Extrair parâmetros do caminho da URL
pm.request.url.query Obter parâmetros de consulta Extrair parâmetros de consulta da URL
pm.request.url.toString() Obter URL completa Recuperar todos os parâmetros na URL completa
pm.request.body.formdata Obter parâmetros do corpo form-data Extrair dados de formulário
pm.request.body.urlencoded Obter parâmetros do corpo x-www-form-urlencoded Extrair dados de formulário codificados em URL
pm.request.body.raw Obter parâmetros do corpo raw, JSON ou XML Extrair conteúdo bruto do corpo da solicitação
pm.request.headers Obter parâmetros de cabeçalho Extrair informações do cabeçalho da solicitação
JSON.parse() Analisar string JSON Converter string JSON em objeto JavaScript

Conclusão

Este artigo descreveu como extrair parâmetros de solicitação no Apidog, incluindo URLs de pré-solicitação, parâmetros de caminho, parâmetros de consulta, parâmetros de corpo e parâmetros de cabeçalho. Usando o objeto pm.request e seus métodos relacionados, você pode facilmente obter e manipular vários dados de solicitação.

botão