1
resposta

[Projeto] Servidor não abre.

from fastapi import FastAPI import os app = FastAPI() restaurantes = [ {'nome': 'Praça', 'categoria': 'Japonesa', 'ativo': False}, {'nome': 'Pizza Suprema', 'categoria': 'Pizza', 'ativo': True}, {'nome': 'Cantina', 'categoria': 'Italiano', 'ativo': False}] @app.get('/api/saborexpress') def listar_restaurantes(): ''' Lista os restaurantes presentes na lista como API ''' return restaurantes

Funções do programa CLI aqui embaixo

def exibir_nome_do_programa(): ''' Exibe o nome estilizado do programa na tela ''' print('''░██████╗░█████╗░██████╗░░█████╗░██████╗░  ███████╗██╗░░██╗██████╗░██████╗░███████╗░██████╗░██████╗ ██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗  ██╔════╝╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝ ╚█████╗░███████║██████╦╝██║░░██║██████╔╝  █████╗░░░╚███╔╝░██████╔╝██████╔╝█████╗░░╚█████╗░╚█████╗░ ░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗  ██╔══╝░░░██╔██╗░██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗ ██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║  ███████╗██╔╝╚██╗██║░░░░░██║░░██║███████╗██████╔╝██████╔╝ ╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝  ╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░ ''')

def exibir_opcoes(): ''' Exibe as opções disponíveis no menu principal ''' print('1. Cadastrar restaurante') print('2. Listar restaurantes') print('3. Alternar estado do restaurante') print('4. Sair\n')

def finalizar_app(): ''' Exibe mensagem de finalização do aplicativo ''' exibir_subtitulo('Finalizar app')

def voltar_ao_menu_principal(): ''' Solicita uma tecla para voltar ao menu principal ''' input('\nDigite uma tecla para voltar ao menu ') main()

def opcao_invalida(): ''' Exibe mensagem de opção inválida e retorna ao menu principal ''' print('Opção inválida!\n') voltar_ao_menu_principal()

def exibir_subtitulo(texto): ''' Exibe um subtítulo estilizado na tela ''' os.system('cls') linha = '*' * len(texto) print(linha) print(texto) print(linha) print()

def cadastrar_novo_restaurante(): ''' Cadastra um novo restaurante ''' exibir_subtitulo('Cadastro de novos restaurantes') nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: ') categoria = input(f'Digite o nome da categoria do restaurante {nome_do_restaurante}: ') dados_do_restaurante = {'nome': nome_do_restaurante, 'categoria': categoria, 'ativo': False} restaurantes.append(dados_do_restaurante) print(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!')

voltar_ao_menu_principal()

def listar_restaurantes_cli(): ''' Lista os restaurantes na interface CLI ''' exibir_subtitulo('Listando restaurantes')

print(f"{'Nome do restaurante'.ljust(22)} | {'Categoria'.ljust(20)} | Status")
for restaurante in restaurantes:
    nome_restaurante = restaurante['nome']
    categoria = restaurante['categoria']
    ativo = 'ativado' if restaurante['ativo'] else 'desativado'
    print(f'- {nome_restaurante.ljust(20)} | {categoria.ljust(20)} | {ativo}')

voltar_ao_menu_principal()

def alternar_estado_restaurante(): ''' Altera o estado ativo/desativado de um restaurante ''' exibir_subtitulo('Alterando estado do restaurante') nome_restaurante = input('Digite o nome do restaurante que deseja alterar o estado: ') restaurante_encontrado = False

for restaurante in restaurantes:
    if nome_restaurante == restaurante['nome']:
        restaurante_encontrado = True
        restaurante['ativo'] = not restaurante['ativo']
        mensagem = f'O restaurante {nome_restaurante} foi ativado com sucesso' if restaurante['ativo'] else f'O restaurante {nome_restaurante} foi desativado com sucesso'
        print(mensagem)
        
if not restaurante_encontrado:
    print('O restaurante não foi encontrado')
        
voltar_ao_menu_principal()

def escolher_opcao(): ''' Solicita e executa a opção escolhida pelo usuário ''' try: opcao_escolhida = int(input('Escolha uma opção: '))

    if opcao_escolhida == 1: 
        cadastrar_novo_restaurante()
    elif opcao_escolhida == 2: 
        listar_restaurantes_cli()
    elif opcao_escolhida == 3: 
        alternar_estado_restaurante()
    elif opcao_escolhida == 4: 
        finalizar_app()
    else: 
        opcao_invalida()
except ValueError:
    opcao_invalida()

def main(): ''' Função principal que inicia o programa ''' os.system('cls') exibir_nome_do_programa() exibir_opcoes() escolher_opcao()

if name == 'main': main()

Esse é o arquivo do primeiro curso, e com os conhecimentos de FastApi, tentei usar nesse código.
Todos os outros estavam funcionando, mas com esse, parou de funciona
1 resposta

Olá, Bernardo. Tudo bem?

Nesse caso você vai precisa verificar alguns pontos:

  1. Verifique a execução do servidor FastAPI: Certifique-se de que está executando o servidor FastAPI corretamente. Para iniciar o servidor, você deve usar o comando uvicorn no terminal. Por exemplo:

    uvicorn nome_do_arquivo:app --reload
    

    Substitua nome_do_arquivo pelo nome do arquivo Python que contém o código do FastAPI.

  2. Instalação do Uvicorn: Verifique se o Uvicorn está instalado no seu ambiente. Caso contrário, você pode instalá-lo usando o pip:

    pip install uvicorn
    
  3. Conflitos de porta: Assegure-se de que a porta que você está tentando usar não está sendo usada por outro processo. Por padrão, o Uvicorn usa a porta 8000, mas você pode especificar outra porta com a opção --port:

    uvicorn nome_do_arquivo:app --reload --port 8001
    
  4. Ambiente Virtual: Se você estiver usando um ambiente virtual, certifique-se de que ele está ativado antes de executar o servidor.

  5. Erros no Código: Revise o código para ver se há erros de sintaxe ou importações incorretas. No seu caso, o código parece estar correto, mas é sempre bom verificar.

Espero ter ajudado.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!