Como testar uma API usando Python e JavaScript

Como testar uma API usando Python e JavaScript

É uma linha tênue entre escolher uma interface de programação de aplicativo (API) e decidir se você pode trabalhar com ela ou não. A maioria das APIs REST tem uma arquitetura genérica e encadeia um caminho de solicitação comum. Mas algumas APIs divergem do padrão. Conseqüentemente, eles se tornam difíceis de usar.

Portanto, antes de construir todo o seu software em uma API, você precisa realizar verificações de qualidade e garantir que está funcionando bem. Então, o que é teste de API e como você pode testar uma API?

O que é teste de API?

O teste de API envolve a avaliação inicial da funcionalidade, segurança, escalabilidade, velocidade de uma API e muito mais para ver se ela é ideal para o programa que deseja usá-la. Mas, superficialmente, pode envolver testes para ver se ele envia as respostas apropriadas quando você faz solicitações por meio de seus vários terminais.

Dependendo de sua estrutura, ao testar uma API, você fará solicitações (Get, Post, Update ou Delete) para seus endpoints relevantes. Existem muitas métricas para verificar durante o teste de API. Mas, em um nível iniciante, você deseja validar a integridade de uma API a partir de seu código de status e garantir que ela busque e aceite os dados corretos.

Para esse fim, como qualquer solicitação da web, uma API pode retornar o código de status 200, 400 ou 500 ou até mesmo outros.

A maioria das APIs usa respostas JSON para servir suas cargas úteis. Dependendo do objetivo, outros podem aceitar e responder com cargas úteis XML, multipartes ou HTML.

Como testar uma API usando Python e JavaScript

Embora existam muitas ferramentas de teste de API de interface gráfica do usuário (GUI) na Internet, você pode avaliar uma API de forma mais crítica com scripts escritos.

Uma API informa em sua documentação o tipo de solicitações que permite e fornece pontos de extremidade relevantes a elas. Portanto, você pode capturá-los e testá-los usando os métodos de solicitação apropriados.

Relacionado: O que é REST API e como você pode obter dados para seu aplicativo ou site?

Ao contrário da fase de produção real, o teste de API é bruto. Portanto, você não precisa de tanta especificidade quanto precisaria ao executar a API para produção. Embora existam diferentes tipos de teste de API, vamos nos concentrar mais nos testes de validação de resposta neste artigo.

Testaremos uma API de loja falsa neste tutorial usando a busca do JavaScript e a biblioteca de solicitações do Python . Enquanto fazemos isso, testaremos os endpoints para obter, postar, atualizar e excluir dados.

Como testar um endpoint Get API com JavaScript

Como você usaria na produção, você pode testar uma API em JavaScript usando Axios ou o método fetch .

Para obter o status de resposta da API usando fetch :

fetch('https://fakestoreapi.com/products', ).then(res =>{ console.log(res) })

A solicitação acima retorna um status 200 se for uma resposta válida. Depois de fazer uma solicitação bem-sucedida, você pode solicitar dados em tempo real da API.

Vamos obter os dados desta API:

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ console.log(response) }).catch(err => console.log(err))

A resposta ao código de busca acima é assim:

Como testar uma API usando Python e JavaScript

Para obter o preço de todos os produtos, por exemplo, você pode usar a função de mapa :

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ response.map(data =>{ console.log(data.price) }) // console.log(response) }).catch(err => console.log(err))

O acima registra a seguinte saída:

Como testar uma API usando Python e JavaScript

Testando um ponto de extremidade Get com Python

Conforme mencionado anteriormente, Python também usa a biblioteca de solicitações para acessar os dados de uma API.

Para verificar o status da resposta neste caso:

import requests data = requests.get('https://fakestoreapi.com/products') print(data.status_code)

O registro de dados como fizemos acima retorna um status correspondente. No entanto, são 200 neste caso.

Agora vamos obter os mesmos dados com Python que obtivemos ao usar JavaScript:

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() print(myData)

O resultado do acima é parecido com este:

Como testar uma API usando Python e JavaScript

Você pode obter dados específicos usando o loop for .

Para obter preços de produtos, por exemplo:

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() indexes = 0 for i in myData: goods = myData[indexes] indexes +=1 print(goods["price"])

Esta é a aparência da saída:

Como testar uma API usando Python e JavaScript

Testando um Post Endpoint com JavaScript

Depois de testar e ver se a solicitação Get funciona, dependendo do seu objetivo e do que a API oferece, você pode querer verificar se pode inserir dados nela também.

Ao contrário de como você faz uma solicitação Get , uma solicitação Post aceita uma carga útil. Além disso, você precisará especificar que é uma solicitação de postagem:

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products', { method: "Post", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload to JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

O código acima registra o código de status de resposta e as novas informações inseridas quando você o executa. Isso informa se sua solicitação foi concluída ou não. Normalmente, se o código de status for 200, sua API possui um endpoint válido que retorna a resposta apropriada.

Teste de pós-solicitação com Python

Você também pode testar um endpoint cargo de uma API usando Python requests.post . Como você fez ao usar a busca do JavaScript , você também precisa especificar a carga útil aqui:

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.post('https://fakestoreapi.com/products', data = payload ) print(Posted.status_code) print(Posted.json())

Como o JavaScript, o código Python acima também registra o código de status de resposta e os novos dados especificados na carga útil .

Testando os pontos de extremidade Put

Atualizar os dados da API exige o mesmo processo de postar e obtê-los nos dois idiomas.

Para fazer isso usando a busca de JavaScript , você só precisa substituir Post por Put :

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products/19', { method: "Put", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload into JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

Se você prestar atenção ao endpoint da API, verá que desta vez inclui o ID do produto. É assim que a API sabe quais dados você deseja atualizar neste caso.

No entanto, algumas APIs podem usar outros métodos para criar seus terminais. Portanto, esse não é um padrão.

Para testar a atualização de dados da API usando Python, você usa requests.put em vez disso:

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.put('https://fakestoreapi.com/products/19', data = payload ) print(Posted.status_code) print(Posted.json())

Os exemplos acima, se bem-sucedidos, inserem os novos dados na posição 19, conforme indicado pelo terminal API.

Testando a solicitação de exclusão

Excluir dados de uma API é tão fácil quanto fazer uma solicitação Get. Isso porque, ao contrário de Post e Put, você não precisa especificar nenhuma carga útil. Tudo que você precisa é excluir o endpoint.

Nossa API escolhida aqui usa o ID do produto para rastrear seus dados. Portanto, excluir um produto é fácil:

fetch('https://fakestoreapi.com/products/19', { method: "Delete", headers:{ 'Content-Type': 'application/json' } } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

Você só precisa de algumas linhas de código para conseguir o mesmo usando Python:

import requests Posted = requests.delete('https://fakestoreapi.com/products/19', ) print(Posted.status_code) print(Posted.json())

Ambos os exemplos acima registram o código de status de resposta e os dados pertencentes ao id consultado (19 neste caso).

Esses métodos de teste são genéricos?

Embora estejamos nos concentrando apenas em uma única API neste artigo, os métodos usados ​​para testar os endpoints CRUD não são diferentes ao lidar com outras APIs. A única diferença, é claro, pode estar nas regras em torno de cada estrutura de API e nas diretrizes para solicitar dados. Depois de decifrá-los para uma API escolhida, você pode usar o método apropriado, conforme descrito aqui, para testar seus pontos de extremidade correspondentes.

Portanto, como toda API tem regras para se conectar a ela, durante o teste, algumas podem fornecer parâmetros adicionais para você incluir nos cabeçalhos de solicitação. Esses parâmetros geralmente incluem um token de acesso ou outros, conforme fornecido na documentação.


Como usar Python como uma calculadora de linha de comando

Como usar Python como uma calculadora de linha de comando

Embora você possa usar uma calculadora gráfica em seu computador, o interpretador da linguagem de programação Python pode funcionar como uma calculadora de mesa. É uma piada de corrida tão popular na comunidade Python que foi mencionada no tutorial oficial. Veja como você pode usar Python como calculadora.

Os 8 melhores blogs Java para programadores

Os 8 melhores blogs Java para programadores

Como programador, você deve enfrentar desafios para sobreviver e construir algumas maravilhas no campo de desenvolvimento ou programação. Portanto, se você está procurando aprender uma linguagem de programação avançada para aprimorar suas habilidades profissionais, Java é um dos melhores candidatos.

7 comandos vitais para começar a usar Python para iniciantes

7 comandos vitais para começar a usar Python para iniciantes

Aprender uma nova linguagem de programação como Python torna-se fácil se você tiver um roteiro abrangente detalhando quais conceitos aprender como um iniciante e como progredir ainda mais para alcançar o próximo marco. Mesmo os programadores intermediários devem freqüentemente revisar seus fundamentos para construir uma base sólida para si mesmos.

Princípios de Web Design Responsivo

Princípios de Web Design Responsivo

Hoje em dia, é prática comum construir um site ou aplicativo que ajusta sua interface de usuário dependendo do navegador ou do dispositivo. Existem duas abordagens para atingir esse objetivo. O primeiro envolve a criação de diferentes versões de seu site ou aplicativo para diferentes dispositivos. Mas é ineficiente e pode levar a erros imprevisíveis.

Como contar o número de dígitos em um número usando C ++, Python e JavaScript

Como contar o número de dígitos em um número usando C ++, Python e JavaScript

Trabalhar com números é parte integrante da programação. Cada linguagem de programação fornece suporte para manipular números de muitas maneiras diferentes. Neste artigo, você aprenderá como encontrar o número total de dígitos em um inteiro usando abordagens iterativas, baseadas em log e baseadas em string.

As 9 melhores alternativas do Docker para gerenciamento de contêineres

As 9 melhores alternativas do Docker para gerenciamento de contêineres

Os contêineres são altamente benéficos para o desenvolvimento, implantação e gerenciamento de software em um ambiente virtual. O Docker é útil no processo de conteinerização, mas não é a única plataforma disponível. Se você estiver procurando por alternativas ao Docker, não procure mais. Esta lista mostra algumas alternativas do Docker ricas em recursos e eficientes para usar em seu próximo projeto.

SQL vs. NoSQL: Qual é o melhor banco de dados para seu próximo projeto?

SQL vs. NoSQL: Qual é o melhor banco de dados para seu próximo projeto?

SQL vs. NoSQL: Qual é o melhor banco de dados para seu próximo projeto?

Como incorporar tweets em suas postagens do WordPress

Como incorporar tweets em suas postagens do WordPress

Incorporar serviços de terceiros em suas postagens do WordPress é uma maneira empolgante de cativar o interesse de um visitante. O conteúdo incorporado também fornece dicas visuais que tornam a digitalização mais fácil. O WordPress facilitou a adição desse tipo de conteúdo.

Como excluir a pasta de módulos de nó com npkill

Como excluir a pasta de módulos de nó com npkill

Node.js é um ambiente de tempo de execução JavaScript que permite executar JavaScript fora dos navegadores da web, tornando-o uma escolha popular para o desenvolvimento de todos os tipos de aplicativos. Parte de sua popularidade se deve à grande quantidade de pacotes NPM disponíveis para facilitar a experiência do desenvolvedor.

Como escrever e compilar seu primeiro código de Solidity

Como escrever e compilar seu primeiro código de Solidity

Solidity é a linguagem de programação usada por contratos inteligentes na blockchain Ethereum. É uma linguagem de programação orientada a objetos com tipagem estática.

Os 5 principais emblemas que irão turbinar seu repositório GitHub

Os 5 principais emblemas que irão turbinar seu repositório GitHub

Os emblemas do GitHub podem aumentar a legibilidade de um repositório, fornecendo aos usuários uma maneira rápida de capturar as métricas do repositório. Badges podem ser embutidos em seu README.md para esclarecer a importância e necessidade de seu projeto para outros desenvolvedores. Como resultado, os leitores têm uma ideia muito rápida do repositório, verificando os emblemas anexados.

O que é o Dia Internacional do Programador? 3 maneiras de comemorar este ano

O que é o Dia Internacional do Programador? 3 maneiras de comemorar este ano

Os dias comemorativos internacionais são uma boa forma de dar reconhecimento a questões sociais, dias históricos e respetivas carreiras. O Dia Internacional do Programador celebra o papel que os programadores desempenham para melhorar a vida cotidiana. O mundo civilizado em que vivemos é produto do trabalho árduo dos programadores.

Como funciona o método Python String format ()? 10 exemplos

Como funciona o método Python String format ()? 10 exemplos

Quer seja uma consulta de banco de dados ou resultados de operações matemáticas, o método de formato de string Python oferece uma maneira mais dinâmica e atraente de apresentar os resultados a um usuário.

Visual Studio 2022 vs. 2019: você deve atualizar agora? Explicado

Visual Studio 2022 vs. 2019: você deve atualizar agora? Explicado

No início deste ano, a Microsoft lançou a versão prévia do Visual Studio 2022 no mundo selvagem da programação. Esta é uma boa notícia! É um IDE extremamente popular, mas precisa de um ajuste ou talvez até mesmo uma revisão, dado o ritmo de mudança no ecossistema DevOps no qual ele prospera.

Uma introdução simples às métricas de software

Uma introdução simples às métricas de software

Métricas de software são medidas usadas para quantificar vários aspectos de seu software. Esses aspectos podem variar de custo, qualidade e eficiência da equipe de desenvolvimento.

Como instalar o .NET Framework versão 3.5 no Windows 10

Como instalar o .NET Framework versão 3.5 no Windows 10

Como um usuário do Windows, você provavelmente já se deparou com as palavras .NET Framework pelo menos uma vez. É uma estrutura de software desenvolvida pela Microsoft que permite criar e executar programas C #, C ++, F # e Visual Basic. A versão mais recente do .NET é 4.8, mas seu computador pode precisar de uma versão mais antiga do .NET (como .NET 3.5) para executar alguns aplicativos.

Flask ou CherryPy: Qual framework Python você deve usar?

Flask ou CherryPy: Qual framework Python você deve usar?

Se você é um desenvolvedor Python, pode se beneficiar muito com a variedade de estruturas disponíveis. Embora algumas estruturas sejam mais adequadas para grandes ecossistemas, outras se especializam em atender a objetivos de desenvolvimento específicos. Continue lendo para aprender os recursos básicos, usos e diferenças entre dois frameworks Python: Flask e CherryPy.

Como encontrar cubos e quadrados perfeitos de N dígitos usando Python, C ++ e JavaScript

Como encontrar cubos e quadrados perfeitos de N dígitos usando Python, C ++ e JavaScript

Muitos programadores adoram resolver problemas matemáticos complicados usando código. Ajuda a aguçar a mente e melhorar as habilidades de resolução de problemas. Neste artigo, você aprenderá a encontrar os menores e os maiores quadrados e cubos perfeitos de n dígitos usando Python, C ++ e JavaScript. Cada exemplo também contém uma saída de amostra para vários valores diferentes.

Como adicionar Python à variável PATH do Windows

Como adicionar Python à variável PATH do Windows

A execução do Python a partir do terminal costuma ser inevitável. No entanto, se você acabou de instalar o Python no Windows 10 pela primeira vez, executá-lo por meio do Terminal do Windows só será possível se for adicionado à variável de ambiente PATH do Windows.

Como usar a instrução if do Python

Como usar a instrução if do Python

A instrução if é a força motriz da programação lógica. Como resultado, um melhor domínio do Python é um acréscimo significativo às suas habilidades de programação em Python.

Como usar Python como uma calculadora de linha de comando

Como usar Python como uma calculadora de linha de comando

Embora você possa usar uma calculadora gráfica em seu computador, o interpretador da linguagem de programação Python pode funcionar como uma calculadora de mesa. É uma piada de corrida tão popular na comunidade Python que foi mencionada no tutorial oficial. Veja como você pode usar Python como calculadora.

Os 8 melhores blogs Java para programadores

Os 8 melhores blogs Java para programadores

Como programador, você deve enfrentar desafios para sobreviver e construir algumas maravilhas no campo de desenvolvimento ou programação. Portanto, se você está procurando aprender uma linguagem de programação avançada para aprimorar suas habilidades profissionais, Java é um dos melhores candidatos.

7 comandos vitais para começar a usar Python para iniciantes

7 comandos vitais para começar a usar Python para iniciantes

Aprender uma nova linguagem de programação como Python torna-se fácil se você tiver um roteiro abrangente detalhando quais conceitos aprender como um iniciante e como progredir ainda mais para alcançar o próximo marco. Mesmo os programadores intermediários devem freqüentemente revisar seus fundamentos para construir uma base sólida para si mesmos.

Princípios de Web Design Responsivo

Princípios de Web Design Responsivo

Hoje em dia, é prática comum construir um site ou aplicativo que ajusta sua interface de usuário dependendo do navegador ou do dispositivo. Existem duas abordagens para atingir esse objetivo. O primeiro envolve a criação de diferentes versões de seu site ou aplicativo para diferentes dispositivos. Mas é ineficiente e pode levar a erros imprevisíveis.

Como contar o número de dígitos em um número usando C ++, Python e JavaScript

Como contar o número de dígitos em um número usando C ++, Python e JavaScript

Trabalhar com números é parte integrante da programação. Cada linguagem de programação fornece suporte para manipular números de muitas maneiras diferentes. Neste artigo, você aprenderá como encontrar o número total de dígitos em um inteiro usando abordagens iterativas, baseadas em log e baseadas em string.

As 9 melhores alternativas do Docker para gerenciamento de contêineres

As 9 melhores alternativas do Docker para gerenciamento de contêineres

Os contêineres são altamente benéficos para o desenvolvimento, implantação e gerenciamento de software em um ambiente virtual. O Docker é útil no processo de conteinerização, mas não é a única plataforma disponível. Se você estiver procurando por alternativas ao Docker, não procure mais. Esta lista mostra algumas alternativas do Docker ricas em recursos e eficientes para usar em seu próximo projeto.

SQL vs. NoSQL: Qual é o melhor banco de dados para seu próximo projeto?

SQL vs. NoSQL: Qual é o melhor banco de dados para seu próximo projeto?

SQL vs. NoSQL: Qual é o melhor banco de dados para seu próximo projeto?

Como incorporar tweets em suas postagens do WordPress

Como incorporar tweets em suas postagens do WordPress

Incorporar serviços de terceiros em suas postagens do WordPress é uma maneira empolgante de cativar o interesse de um visitante. O conteúdo incorporado também fornece dicas visuais que tornam a digitalização mais fácil. O WordPress facilitou a adição desse tipo de conteúdo.

Como excluir a pasta de módulos de nó com npkill

Como excluir a pasta de módulos de nó com npkill

Node.js é um ambiente de tempo de execução JavaScript que permite executar JavaScript fora dos navegadores da web, tornando-o uma escolha popular para o desenvolvimento de todos os tipos de aplicativos. Parte de sua popularidade se deve à grande quantidade de pacotes NPM disponíveis para facilitar a experiência do desenvolvedor.

Como escrever e compilar seu primeiro código de Solidity

Como escrever e compilar seu primeiro código de Solidity

Solidity é a linguagem de programação usada por contratos inteligentes na blockchain Ethereum. É uma linguagem de programação orientada a objetos com tipagem estática.