This commit is contained in:
Israel Alves de Oliveira Arruda 2026-06-01 18:42:25 -03:00
parent a803ce705e
commit c3edf5a11d
3 changed files with 50 additions and 12 deletions

View File

@ -4,23 +4,30 @@ import os
from dotenv import load_dotenv from dotenv import load_dotenv
from db import get_connection from db import get_connection
#Carrega arquivo de variáveis de ambiente (.env)
load_dotenv() load_dotenv()
#Carrega variável de ambiente PORT. Essa variável contém a porta TCP utilizada na APIREST
PORT = os.getenv("PORT") PORT = os.getenv("PORT")
#Cria objeto Flask. Esse objeto é necessário para utilização do FLASK
#(módulo python para criação de APIs REST).
app = Flask(__name__) app = Flask(__name__)
#Aplica cors no objeto Flask
CORS(app) CORS(app)
#Criar rota de saúde da aplicação
@app.route("/health") @app.route("/health")
def health(): def health():
return jsonify({"message" : "API Flask version 1.0!!!"}) return jsonify({"message" : "API Flask version 1.0!!!"})
#=============================================================
@app.route("/produtos",methods=["GET"]) @app.route("/produtos",methods=["GET"])
def listar_produtos(): def listar_produtos():
conexao = get_connection() conexao = get_connection()
cursor = conexao.cursor(dictionary=True) cursor = conexao.cursor(dictionary=True)
cursor.execute("Select * from produto") cursor.execute("select * from produto")
produtos = cursor.fetchall() produtos = cursor.fetchall()
cursor.close() cursor.close()
@ -28,6 +35,8 @@ def listar_produtos():
return jsonify(produtos) return jsonify(produtos)
#=============================================================
@app.route("/produtos/<int:id>", methods=["GET"]) @app.route("/produtos/<int:id>", methods=["GET"])
def listar_produto_id(id): def listar_produto_id(id):
conexao = get_connection() conexao = get_connection()
@ -40,23 +49,31 @@ def listar_produto_id(id):
conexao.close() conexao.close()
if produto is None: if produto is None:
return jsonify({"erro" : "Produto nao encontrado"}), 404 return jsonify({"erro" : "Produto não encontrado"}), 404
return jsonify(produto) return jsonify(produto)
@app.route("/proddutos",methods=["POST"])
def criar_produto():
dados = request.get_jason()
#=============================================================
@app.route("/produtos",methods=["POST"])
def criar_produto():
dados = request.get_json()
nome = dados.get("nome") nome = dados.get("nome")
preco = dados.get("preco") preco = dados.get("preco")
estoque = dados.get("estoque") estoque = dados.get("estoque")
if nome is None or preco is None or estoque is None:
if nome is None or preco is None or estoque is None return jsonify({"erro" : "Produto inválido"}), 400
return jsonify({"erro" : "Produto invalido"}), 400
conexao = get_connection() conexao = get_connection()
cursor = conexao.cursor() cursor = conexao.cursor()
sql = "insert into produto (nome, preco, estoque) values (%s, %s, %s)"
cursor.execute(sql,(nome, preco, estoque))
conexao.commit()
novo_id = cursor.lastrowid
cursor.close()
conexao.close()
return jsonify({"id" : novo_id, "nome": nome, "preco" : preco, "estoque" : estoque}), 201
#Inicializa o servidor da APIRest
if __name__ == "__main__": if __name__ == "__main__":
app.run(port=PORT, debug=True) app.run(port=PORT, debug=True)

View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Produtos</title>
</head>
<body>
<header>
</header>
<main>
<h1> Lista de produtos</h1>
<table>
</table>
</main>
</body>
</html>

View File