Python é uma linguagem de programação poderosa. Ele tem muitas bibliotecas para construir APIs REST ou RESTful. Uma das bibliotecas populares para construir aplicativos da web e escrever APIs REST é Frasco.
Neste artigo, vou mostrar 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 conhecimento básico da linguagem de programação Python.
- O conhecimento básico da execução de comandos no shell.
Você deve ser capaz de encontrar artigos e tutoriais sobre todos esses tópicos no LinuxHint.com
Usarei Python 3 no Debian 9 Stretch neste artigo. Se você estiver usando Python 2, você terá que ajustar um pouco. Você deve ser capaz de descobrir sozinho, pois será tão simples quanto 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 em seu computador com o seguinte comando:
$ sudo -H pip3 install virtualenvAgora crie um diretório de projeto (vamos chamá-lo pireste /) com o seguinte comando:
$ mkdir pyrestAgora crie um ambiente virtual Python no pireste / diretório do projeto com o seguinte comando:
$ virtualenv pyrest /Agora navegue até o diretório do projeto com o seguinte comando:
$ cd pyrestEm seguida, ative o ambiente virtual Python com o seguinte comando:
$ source bin / activatePor fim, execute o seguinte comando para instalar a biblioteca Flask Python:
$ bin / pip3 install flaskEscrevendo seu primeiro script de frasco:
Nesta seção, vou escrever um programa hello world em Python Flask.
Primeiro, crie um arquivo Olá.py no diretório do seu projeto:
$ touch olá.pyAgora adicione as seguintes linhas para Olá.py arquivo e salve-o.
Na próxima seção, mostrarei como executar scripts do Flask.
Executando o Flask Script:
Agora, para começar o Olá.py Servidor Flask, execute o seguinte comando:
$ bin / python3 olá.pyComo você pode ver, o servidor foi iniciado em http: // 127.0.0.1: 8080.
Agora você pode acessar o servidor Flask http: // 127.0.0.1: 8080 a partir do navegador da web ou softwares de teste de API, como Postman. Vou usar o CURL.
$ curl http: // 127.0.0.1: 8080Como você pode ver, a saída correta é impressa na tela.
Parabéns! Flask está funcionando.
Acessando dados usando GET na API REST:
A solicitação GET na API REST é usada para buscar informações do servidor API. Você define alguns pontos de extremidade de API e faz uma solicitação GET nesse ponto de extremidade. É simples.
Primeiro, crie um novo arquivo obter.py no diretório do seu projeto com o seguinte comando:
$ touch get.pyAgora adicione as seguintes linhas em seu obter.py arquivo e salve-o.
Aqui, na linha 1, o Frasco função de construtor e jsonify função é importada do módulo frasco.
Na linha 3, a Frasco objeto é criado e armazenado em aplicativo variável.
Na linha 5, criei um array Python 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 é OBTER.
Na linha 11, eu defini a função getAccounts (). getAccounts () função será executada quando uma solicitação GET para / contas endpoint é feito.
Linha 12, que faz parte da getAccounts () função, eu converti o contas matriz de dicionários para JSON usando jsonify () função e retornou.
Na linha 14-15, liguei para o aplicativo.corre() para dizer ao Flask para executar o servidor API na porta 8080.
Agora execute o servidor Flask API com o seguinte comando:
$ bin / python3 get.pyO servidor foi iniciado na porta 8080.
Agora faça uma solicitação GET para o / contas endpoint com CURL da seguinte forma:
$ curl http: // 127.0.0.1: 8080 / contasComo você pode ver, os dados das contas são exibidos no formato JSON na solicitação GET em / contas ponto final.
Você também pode obter dados específicos da conta. Para fazer isso, vou criar outro endpoint de API /conta/
Edite o obter.py script e adicione as linhas marcadas a ele.
Aqui, na linha 14, eu defini o endpoint da API /conta/
Na linha 15-17, a função getAccount () para o endpoint da API /conta/
Na linha 16, o eu ia variável é convertida para um inteiro. Eu também deduzi 1 do eu ia variável. Porque o índice da matriz começa em 0. Eu quero iniciar o ID da conta de 1. Então, se eu colocar 1 como a conta
Na linha 17, a matriz no índice
O resto dos códigos são os mesmos.
Agora execute o servidor API novamente.
$ bin / python3 get.py
Solicitei os dados das contas 1 e 2 separadamente e recebi o resultado esperado, 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 POST na API REST:
Agora vou renomear obter.py para api.py e adicionar um endpoint de API /conta para adicionar novos dados.
Renomear obter.py para api.py:
$ mv -v get.py api.pyPrimeiro, adicione as linhas (19-26) conforme marcado na imagem abaixo para o api.py Arquivo.
Agora execute o api.py servidor:
$ bin / python3 api.py
Para inserir novos dados no /conta endpoint, execute o seguinte comando:
$ curl -X POST -H "Content-Type: application / json" -d '"name": "Shovon", "balance": 100'http: // 127.0.0.1: 8080 / conta
NOTA: Aqui, '“Nome”: “Shovon”, “equilíbrio”: 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.