SilvioLima commited on
Commit
8f7ab76
·
1 Parent(s): 8ade526

Back e Front

Browse files
Files changed (1) hide show
  1. app.py +7 -4
app.py CHANGED
@@ -34,17 +34,20 @@ def get_hello_message(name: str):
34
 
35
  def create_item(name: str, description: str, price: float):
36
  """Chama a lógica do backend diretamente."""
37
- if not name or price is None:
38
- return "Nome e Preço são campos obrigatórios."
 
 
39
 
40
  # Cria uma instância do modelo Pydantic, como o backend espera
41
  item_model = Item(
42
  name=name,
43
  description=description,
44
- price=price
45
  )
46
  # Chamada direta à função do backend
47
- return create_api_item(item_model)
 
48
 
49
  # --- Interface Gradio ---
50
  with gr.Blocks(title="FastAPI + Gradio Integrado") as demo:
 
34
 
35
  def create_item(name: str, description: str, price: float):
36
  """Chama a lógica do backend diretamente."""
37
+ # Validação explícita para evitar problemas com valores 'falsy' como 0.0
38
+ if not name or price is None:
39
+ # Retorna um JSON vazio ou uma mensagem de erro, mantendo o tipo de saída consistente.
40
+ return gr.JSON(value={"error": "Nome e Preço são campos obrigatórios."})
41
 
42
  # Cria uma instância do modelo Pydantic, como o backend espera
43
  item_model = Item(
44
  name=name,
45
  description=description,
46
+ price=float(price) # Garante que o tipo é float
47
  )
48
  # Chamada direta à função do backend
49
+ # O Gradio espera um dicionário para o componente gr.JSON, então convertemos o modelo.
50
+ return create_api_item(item_model).model_dump()
51
 
52
  # --- Interface Gradio ---
53
  with gr.Blocks(title="FastAPI + Gradio Integrado") as demo: