Documentação do Código Flask com Redis A documentação a seguir descreve um código em Python que utiliza o framework Flask e a biblioteca Redis para calcular fatoriais e super fatoriais de um número fornecido por meio de uma API REST.
Pré-requisitos Antes de executar o código, certifique-se de ter instalado o Python e as bibliotecas Flask e Redis. Caso ainda não tenha instalado, siga as instruções relevantes para o seu sistema operacional.
Descrição do Código O código é composto por uma aplicação Flask que fornece uma rota /super_fatorial/ para calcular o super fatorial de um número inteiro fornecido.
from flask import Flask, jsonify import redis
app = Flask(name) cache = redis.Redis() Aqui, importamos as bibliotecas necessárias, como o Flask para criar a aplicação web e o Redis para armazenar em cache os resultados dos cálculos.
def calcular_fatorial(numero): if numero < 0: return "Número deve ser não-negativo." elif numero == 0 or numero == 1: return 1 else: # Verificar se o resultado está em cache cache_key = f"fatorial:{numero}" resultado = cache.get(cache_key) if resultado: return int(resultado)
fatorial = 1
for i in range(1, numero + 1):
fatorial *= i
# Armazenar o resultado em cache
cache.set(cache_key, str(fatorial))
return fatorial
A função calcular_fatorial é responsável por calcular o fatorial de um número. Ela recebe um parâmetro numero e retorna o resultado do fatorial correspondente. Antes de calcular, ela verifica se o resultado já está armazenado em cache. Se estiver, retorna o valor armazenado em cache; caso contrário, realiza o cálculo do fatorial e armazena o resultado em cache para futuras consultas.
def calcular_super_fatorial(numero): if numero < 0: return "Número deve ser não-negativo." elif numero == 0 or numero == 1: return 1 else: # Verificar se o resultado está em cache cache_key = f"super_fatorial:{numero}" resultado = cache.get(cache_key) if resultado: return int(resultado)
super_fatorial = 1
for i in range(1, numero + 1):
super_fatorial *= calcular_fatorial(i)
# Armazenar o resultado em cache
cache.set(cache_key, str(super_fatorial))
return super_fatorial
A função calcular_super_fatorial é responsável por calcular o super fatorial de um número. Ela utiliza a função calcular_fatorial para calcular cada fatorial necessário para o super fatorial. Assim como a função calcular_fatorial, ela verifica se o resultado já está armazenado em cache e retorna o valor armazenado, caso exista.
@app.route('/super_fatorial/int:numero', methods=['GET']) def obter_super_fatorial(numero): resultado = calcular_super_fatorial(numero) return jsonify({'numero': numero, 'super_fatorial': resultado})
Aqui, definimos a rota /super_fatorial/, que recebe um número inteiro como parâmetro na URL. Quando essa rota é acessada com um método GET, a função obter_super_fatorial é executada. Essa função chama a função calcular_super_fatorial para obter o resultado e retorna o resultado em formato JSON contendo o número e o super fatorial calculado.
if name == 'main': app.run(debug=True)
Por fim, o bloco if name == 'main': garante que o servidor Flask seja executado apenas se o arquivo for executado diretamente, não quando for importado como um módulo. A opção debug=True habilita o modo de depuração, que é útil durante o desenvolvimento.
Executando a Aplicação Para executar a aplicação, execute o arquivo Python contendo o código. O servidor Flask será iniciado e a API estará disponível no endereço http://localhost:5000/super_fatorial/, onde deve ser substituído pelo número inteiro desejado.
Certifique-se de que o servidor Redis também esteja em execução, pois a aplicação usa o Redis como mecanismo de armazenamento em cache.
Exemplo de Uso da API Suponha que a aplicação esteja sendo executada localmente em http://localhost:5000. Para calcular o super fatorial do número 5, você pode fazer uma solicitação GET para o seguinte URL: http://localhost:5000/super_fatorial/5. A resposta será um objeto JSON contendo o número e o super fatorial calculado:
{ "numero": 5, "super_fatorial": 34560 }
Isso indica que o super fatorial de 5 é igual a 34560.
Considerações Finais Esta documentação abordou o código Python que utiliza o Flask e o Redis para calcular fatoriais e super fatoriais por meio de uma API REST. Você pode expandir esse código para adicionar mais funcionalidades, melhorar a manipulação de erros e personalizar as respostas da API de acordo com suas necessidades. Certifique-se de ler a documentação oficial do Flask e do Redis para obter mais informações sobre essas bibliotecas.