Criando API REST em Python

Criando API REST em Python
REST ou transferência de estado representacional é um estilo de desenvolvimento de software usado principalmente em design de interface de API ou programação de aplicativos para criar serviços interativos e modernos da Web. Também é conhecido como serviço de web repount.

Python é uma poderosa linguagem de programação. Tem muitas bibliotecas para construir descanso ou APIs repousantes. Uma das bibliotecas populares para criar aplicativos da web e escrever APIs de descanso é Frasco.

Neste artigo, mostrarei como criar API REST em Python usando Flask. Vamos começar.

Requisitos:

Você devia ter

  • Python 2 ou Python 3 instalado em seu computador.
  • Pip ou pip3 instalado no seu computador.
  • O entendimento básico da linguagem de programação python.
  • O entendimento básico de executar comandos no shell.

Você deve encontrar artigos e tutoriais sobre todos esses tópicos no Linuxhint.com

Estarei usando o Python 3 no Debian 9 Stretch neste artigo. Se você estiver usando o Python 2, terá que ajustar um pouco. Você deve ser capaz de descobrir isso mesmo, pois será simples como escrever Pitão em vez de Python3 e pip em vez de pip3.

Configurando o ambiente virtual:

Para simplificar, o ambiente virtual é usado para isolar um aplicativo python de outro. O pacote python usado para fazer isso é virtualenv.

Você pode instalar facilmente virtualenv Usando PIP no seu computador com o seguinte comando:

$ sudo -h pip3 instalar virtualenv

Agora crie um diretório de projeto (vamos chamá -lo pirrest/) com o seguinte comando:

$ mkdir pyrest

Agora crie um ambiente virtual python no pirrest/ Diretório do projeto com o seguinte comando:

$ virtualenv pyrest/

Agora navegue até o diretório do projeto com o seguinte comando:

$ CD Pyrest

Em seguida, ative o ambiente virtual do Python com o seguinte comando:

$ fontes bin/ativação

Por fim, execute o seguinte comando para instalar a Biblioteca Python Flask:

$ bin/pip3 Instale o frasco

Escrevendo seu primeiro script de frasco:

Nesta seção, vou escrever um programa Hello World em Python Flask.

Primeiro, crie um arquivo olá.py No seu diretório de projeto:

$ toque olá.py

Agora adicione as seguintes linhas a olá.py Arquive e salve.

Na próxima seção, mostrarei como executar scripts de frasco.

Script de frasco em execução:

Agora para começar o olá.py Flask Server, execute o seguinte comando:

$ bin/python3 Olá.py

Como você pode ver, o servidor começou http: // 127.0.0.1: 8080.

Agora, você pode acessar o servidor Flask http: // 127.0.0.1: 8080 Do navegador da web ou softwares de teste de API, como o Postman. Eu vou usar Curl.

$ Curl http: // 127.0.0.1: 8080

Como você pode ver, a saída correta é impressa na tela.

Parabéns! O frasco está funcionando.

Acessando dados usando a API GET IN REST:

Obter solicitação na API REST é usado para buscar informações do servidor API. Você define alguns pontos de extremidade da API e faz uma solicitação GET nesse ponto final. É simples.

Primeiro, crie um novo arquivo pegar.py No seu diretório de projeto com o seguinte comando:

$ touch get.py

Agora adicione as seguintes linhas em seu pegar.py Arquive e salve.

Aqui, na linha 1, o Frasco Função do construtor e jsonify A função é importada do módulo Flask.

Na linha 3, um Frasco Objeto é criado e armazenado em aplicativo variável.

Na linha 5, criei uma variedade de dicionários de dicionários de alguns dados fictícios e os armazenei no Contas variável.

Na linha 10, eu defini o endpoint da API /Contas e o método de solicitação, que é PEGAR.

Na linha 11, eu defini a função getAccounts (). getAccounts () a função será executada quando um pedido de obtenha para /Contas endpoint é feito.

Linha 12, que faz parte de getAccounts () função, eu converti o Contas Matriz de dicionários para JSON usando jsonify () função e devolveu.

Na linha 14-15, liguei para o aplicativo.correr() Para dizer a Flask para executar o servidor API na porta 8080.

Agora execute o servidor API do Flask com o seguinte comando:

$ bin/python3 Get.py

O servidor começou na porta 8080.

Agora faça um pedido de obtenção para o /Contas endpoint com cuba da seguinte forma:

$ Curl http: // 127.0.0.1: 8080/contas

Como você pode ver, os dados da conta são exibidos como formato JSON na solicitação GET na /Contas endpoint.

Você também pode obter dados de conta específicos também. Para fazer isso, vou criar outro terminal da API /conta/. Aqui, será o ID do titular da conta. O id aqui é o índice da matriz.

Editar o pegar.py script e adicione as linhas marcadas a ele.

Aqui, na linha 14, eu defini o endpoint da API /conta/ e o método a ser usado, que é PEGAR.

Na linha 15-17, a função getAccount () para o terminal da API /conta/ é definido. O getAccount () Função aceita um eu ia como um argumento. O valor de Do ponto de extremidade da API é definido para o eu ia variável de getAccount () função.

Na linha 16, o eu ia A variável é convertida em um número inteiro. Eu também deduzi 1 do eu ia variável. Porque o índice de matriz começa de 0. Eu quero iniciar o ID da conta de 1. Então, se eu colocar 1 como a conta , 1 - 1 = 0, vou obter o elemento no índice 0 da matriz Contas.

Na linha 17, a matriz no índice é devolvido como JSON.

O restante dos códigos é o mesmo.

Agora execute o servidor API novamente.

$ bin/python3 Get.py

Solicitei dados para a conta 1 e 2 separadamente e obtive a saída esperada, como você pode ver na captura de tela abaixo.

$ Curl http: // 127.0.0.1: 8080/conta/1
$ Curl http: // 127.0.0.1: 8080/conta/2

Adicionando dados usando postagem na API REST:

Agora vou renomear pegar.py para API.py e adicione um terminal de API /conta Para adicionar novos dados.

Renomear pegar.py para API.py:

$ MV -V Get.Py API.py

Primeiro, adicione as linhas (19-26) marcadas na captura de tela abaixo para o API.py arquivo.

Agora execute o API.py servidor:

API $ bin/python3.py

Para inserir novos dados no /conta endpoint, execute o seguinte comando:

$ curl -x post -h "Tipo de conteúdo: aplicativo/json" -d '"name": "shovon", "balance": 100'
http: // 127.0.0.1: 8080/conta

OBSERVAÇÃO: Aqui, '“Nome”: “Shovon”, “Balance”: 100' são os dados de entrada JSON.

Os dados devem ser inseridos.

Como você pode ver, os novos dados são adicionados.

Então é isso para este artigo. Obrigado por ler este artigo.