Flask é um popular framework web Python que é usado para construir aplicações web. Uma das tarefas mais comuns ao construir uma aplicação web é enviar dados do cliente para o servidor. Isso é tipicamente feito usando o método HTTP POST. JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados que é comumente usado para enviar dados pela internet.
Neste post, iremos explorar como usar o Flask para lidar com dados JSON enviados via o método HTTP e descobrir como usar Apidog, uma plataforma tudo-em-um que facilita o desenvolvimento eficiente de APIs, para projetar e testar sua API REST Python
Você também pode inspecionar os cabeçalhos, cookies, códigos de status e outros detalhes da resposta. O Apidog também permite que você manipule os dados da resposta usando JavaScript, filtre os dados usando JSONPath e valide os dados usando o JSON Schema.
Dados JSON
JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados que é comumente usado para enviar dados pela internet. Ele é baseado em um subconjunto da linguagem de programação JavaScript, mas pode ser usado com qualquer linguagem de programação.
Uma das vantagens de usar JSON é que ele é fácil de ler e escrever. Os dados JSON são representados como pares chave-valor, o que facilita a compreensão e o trabalho com eles. JSON pode representar seis tipos de dados nativamente: strings, números, booleanos, null, arrays e objetos. Por exemplo, aqui está uma representação JSON de um post de blog:
{
"id": 1001,
"title": "O que é JSON?",
"author": {
"id": 1,
"name": "James Walker"
},
"tags": [
"api",
"json",
"programação"
],
"published": false,
"publishedTimestamp": null
}
Este exemplo demonstra todos os tipos de dados JSON. Ele também ilustra a concisão dos dados formatados em JSON, uma das características que o tornaram tão atraente para uso em APIs.
Método HTTP POST
O método HTTP POST é um dos métodos HTTP mais comuns usados para enviar dados do cliente para o servidor. Quando um cliente envia uma requisição HTTP POST, inclui um corpo de mensagem que contém os dados que estão sendo enviados. Esses dados podem estar em uma variedade de formatos, incluindo JSON.
Usando JSON, os desenvolvedores podem garantir que os dados enviados ao servidor estão bem-organizados e são facilmente compreensíveis, aumentando assim a eficiência na criação e atualização de recursos.

O que é Flask e por que você deve usá-lo?
Flask é um microframework web leve escrito em Python. Ele é projetado para ser simples e fácil de usar, enquanto ainda fornece todos os recursos que você precisa para construir uma aplicação web moderna.
Flask é construído sobre o toolkit WSGI Werkzeug e o motor de template Jinja2. Ele fornece uma API simples e intuitiva para lidar com requisições e respostas HTTP.

Uma das principais características do Flask é seu suporte para lidar com dados JSON. O Flask fornece uma maneira simples de analisar dados JSON enviados via o método HTTP POST. Isso facilita a construção de aplicações web que podem aceitar dados JSON de clientes.
Instalação do Flask
Flask é um microframework baseado em Python, então você precisará ter o Python instalado em seu computador. Você pode baixar a versão mais recente do Python no site oficial:

Criar um ambiente virtual: É uma boa prática criar um ambiente virtual para seu projeto para evitar conflitos com outros projetos Python. Você pode criar um ambiente virtual usando o módulo venv
que vem com o Python. Aqui está como você pode criar um ambiente virtual:
$ python3 -m venv meuambiente
Isso criará um novo diretório chamado meuambiente
em seu diretório atual.
Ativar o ambiente virtual: Uma vez que você tenha criado o ambiente virtual, você precisa ativá-lo. Aqui está como você pode ativar o ambiente virtual:
$ source meuambiente/bin/activate
Instalar Flask: Com o ambiente virtual ativado, você pode agora instalar o Flask usando pip
, o gerenciador de pacotes Python. Aqui está como você pode instalar o Flask:
$ pip install Flask
Isso instalará o Flask e suas dependências.
Verificar a instalação: Para verificar se o Flask foi instalado corretamente, você pode criar um novo arquivo chamado app.py
com o seguinte conteúdo:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Olá, Mundo!'
if __name__ == '__main__':
app.run()
Salve o arquivo e execute-o usando o seguinte comando:
$ flask run
Isso iniciará um servidor de desenvolvimento local em http://localhost:5000
. Abra seu navegador da web e navegue até http://localhost:5000
. Você deve ver uma mensagem que diz “Olá, Mundo!”.
Manipulando Requisições JSON no Flask
Para lidar com dados JSON no Flask, você precisará usar o objeto request
. O objeto request
é fornecido pelo Flask e contém todos os dados que foram enviados na requisição HTTP. Para analisar dados JSON, você pode usar o atributo json
do objeto request
.
Obtendo Dados JSON no Flask
Para acessar os dados JSON enviados pelo cliente, você pode usar o atributo json
do objeto request
ou o método get_json()
. Ambos retornam um dicionário ou lista Python que representa os dados JSON analisados.
A diferença é que o atributo json
levantará uma exceção se os dados não forem JSON válidos, enquanto o método get_json()
retornará None
nesse caso. Você também pode passar um parâmetro force
para o método get_json()
para forçar a análise dos dados como JSON, independentemente do tipo de conteúdo.
Aqui está um exemplo de um manipulador de rota simples que recebe uma requisição POST com dados JSON e os imprime no console:
from flask import Flask, request
app = Flask(__name__)
@app.route('/json', methods=['POST'])
def json():
# Obter os dados JSON da requisição
data = request.get_json()
# Imprimir os dados no console
print(data)
# Retornar uma mensagem de sucesso
return 'JSON recebido!'
O tipo de conteúdo da requisição é importante porque informa ao Flask como analisar os dados. Se o tipo de conteúdo for application/json
, o Flask analisará automaticamente os dados como JSON e tornará disponível através do atributo json
ou do método get_json()
.
Se o tipo de conteúdo não for especificado ou for outro, o Flask não irá analisar os dados como JSON, a menos que você use o parâmetro force
do método get_json()
. Portanto, é recomendado definir o tipo de conteúdo como application/json
ao enviar dados JSON para o Flask, ou tratar os casos onde o tipo de conteúdo não está correto ou os dados não são JSON válidos.
Enviando Respostas JSON para o Cliente
Para criar e retornar respostas JSON usando a função jsonify()
do Flask, você precisa importar a função do módulo flask
e passar um dicionário ou lista Python como argumento. A função converterá o objeto Python em uma string JSON e definirá o tipo de conteúdo da resposta como application/json
. Dessa forma, o cliente pode facilmente analisar os dados JSON e usá-los para seus fins.
Aqui está um exemplo de um manipulador de rota simples que envia uma resposta JSON com alguns dados de volta ao cliente:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/data')
def data():
# Criar um dicionário Python com alguns dados
data = {
'name': 'Bing',
'age': 10,
'hobbies': ['procurar', 'conversar', 'aprender']
}
# Retornar uma resposta JSON usando a função jsonify()
return jsonify(data)
A função jsonify()
tem alguns parâmetros opcionais que podem afetar o formato e a ordenação da saída JSON. Por exemplo, você pode usar o parâmetro sort_keys
para ordenar as chaves do objeto JSON em ordem alfabética, ou o parâmetro indent
para adicionar indentação e novas linhas à string JSON. Esses parâmetros podem tornar a saída JSON mais legível e consistente, mas também podem aumentar o tamanho da resposta.

Como POSTAR Dados JSON com Apidog
Apidog é uma ótima ferramenta para qualquer pessoa que trabalhe com APIs, seja você um desenvolvedor, um testador, um designer ou um estudante. Ela ajuda você a:
- Aprender a usar diferentes APIs e explorar seus recursos
- Testar e depurar suas próprias APIs e encontrar erros e bugs
- Experimentar com diferentes parâmetros e opções e ver como eles afetam a resposta
- Documentar e demonstrar seu uso e resultados da API
- Colaborar e comunicar-se com outros usuários de API e desenvolvedores
Para testar sua API Flask que pode enviar e receber dados JSON usando Apidog, você precisa seguir estes passos:
- Visite o site do Apidog e crie uma conta gratuita. Você também pode usar o Apidog sem uma conta, mas não poderá salvar e compartilhar suas requisições. Abra o Apidog e crie uma nova requisição.

- Selecione o método HTTP que deseja usar. Por exemplo, se você quiser obter a lista de mensagens, pode selecionar o método GET. Se quiser criar uma nova mensagem, pode selecionar o método POST.

- Insira a URL do ponto de extremidade da sua API no campo de entrada de URL. Adicione quaisquer cabeçalhos, cookies ou parâmetros que você precisar para sua requisição. Por exemplo, se você quiser criar uma nova mensagem, precisará adicionar o cabeçalho
Content-Type
com o valorapplication/json
e escrever os dados em formato JSON no campo de entrada do corpo. Por exemplo, você pode escrever os seguintes dados:

- Clique no botão Enviar para enviar a requisição para sua API. O Apidog então exibirá a resposta da sua API na aba Resposta. Você também pode mudar para as abas Cabeçalhos, Cookies ou Raw para ver outros detalhes da resposta.

- Analise e manipule os dados da resposta usando os recursos e ferramentas do Apidog. Você pode usar o Visualizador JSON, JSONPath, JavaScript, JSON Schema e outros recursos e ferramentas para visualizar, filtrar, modificar ou validar os dados da resposta. Você também pode salvar sua requisição e resposta e compartilhá-las com outros usando uma URL única.
Agora você testou sua API Flask que pode enviar e receber dados JSON usando Apidog. Você também pode testar outros pontos de extremidade da API e métodos usando os mesmos passos. Você também pode usar o Apidog para testar outras APIs que você encontra online ou cria a si mesmo. O Apidog é uma ferramenta versátil e poderosa que pode ajudá-lo em qualquer tarefa relacionada a API. Você pode aprender mais sobre o Apidog e seus recursos e ferramentas no site oficial:
Conclusão
Neste post, aprendemos como lidar com requisições JSON no Flask, um popular micro-framework para desenvolvimento web em Python. Vimos como:
- Obter e analisar dados JSON de requisições POST usando o atributo
json
do objetorequest
ou o métodoget_json()
. - Criar e retornar respostas JSON usando a função
jsonify()
, que converte um dicionário ou lista Python em uma string JSON e define o tipo de conteúdo apropriado para a resposta. - Usar alguns parâmetros opcionais da função
jsonify()
, comosort_keys
eindent
, para afetar o formato e a ordenação da saída JSON. - Usar Apidog para POSTAR dados JSON