Pular para conteúdo

Documentação do Servidor Flask com SQLAlchemy

Esta documentação detalha a implementação de um servidor Flask que utiliza SQLAlchemy para interação com um banco de dados MySQL. O servidor oferece APIs para gerenciar usuários, produtos, restaurantes e pesquisas de produtos e restaurantes.

Configuração Inicial

  • Flask: Framework utilizado para criar o servidor web.
  • SQLAlchemy: ORM (Object-Relational Mapping) utilizado para interagir com o banco de dados MySQL.
  • Flask_CORS: Utilizado para habilitar o Cross-Origin Resource Sharing (CORS).
  • mysql.connector: Conector para MySQL.
  • JSON: Formato de dados para as respostas da API.

Modelos de Dados

  • usuarios: Representa usuários, com campos para ID, nome, função, login e senha.
  • produtos: Representa produtos, com campos para ID, nome, ID do restaurante, preço, descrição e imagem.
  • restaurantes: Representa restaurantes, com campos para ID, nome, distância e logo.
  • pesquisas_produto e pesquisas_restaurante: Representam pesquisas realizadas por produtos e restaurantes, respectivamente.

Endpoints da API

  1. Usuários:
  2. GET /usuarios: Retorna todos os usuários.
  3. GET /usuario/<id_usuario>: Retorna um usuário específico pelo ID.
  4. POST /usuarios: Cria um novo usuário.
  5. PUT /usuario/<id_usuario>: Atualiza um usuário existente.
  6. DELETE /usuario/<id_usuario>: Deleta um usuário.

  7. Produtos:

  8. GET /produtos: Retorna todos os produtos.
  9. GET /produto/<id_produto>: Retorna um produto específico pelo ID.
  10. POST /produtos: Cria um novo produto.
  11. PUT /produto/<id_produto>: Atualiza um produto existente.
  12. DELETE /produto/<id_produto>: Deleta um produto.

  13. Restaurantes:

  14. GET /restaurantes: Retorna todos os restaurantes.
  15. GET /restaurante/<id_restaurante>: Retorna um restaurante específico pelo ID.
  16. POST /restaurantes: Cria um novo restaurante.
  17. PUT /restaurante/<id_restaurante>: Atualiza um restaurante existente.
  18. DELETE /restaurante/<id_restaurante>: Deleta um restaurante.

  19. Pesquisas:

  20. GET /pesquisas_produto: Retorna todas as pesquisas de produtos.
  21. GET /pesquisa_produto/<id_pesquisa_produto>: Retorna uma pesquisa de produto específica.
  22. POST /pesquisas_produto: Cria uma nova pesquisa de produto.
  23. PUT /pesquisa_produto/<id_pesquisa_produto>: Atualiza uma pesquisa de produto.
  24. DELETE /pesquisa_produto/<id_pesquisa_produto>: Deleta uma pesquisa de produto.
  25. GET /pesquisas_restaurante: Retorna todas as pesquisas de restaurantes.
  26. GET /pesquisa_restaurante/<id_pesquisa_restaurante>: Retorna uma pesquisa de restaurante específica.
  27. POST /pesquisas_restaurante: Cria uma nova pesquisa de restaurante.
  28. PUT /pesquisa_restaurante/<id_pesquisa_restaurante>: Atualiza uma pesquisa de restaurante.
  29. DELETE /pesquisa_restaurante/<id_pesquisa_restaurante>: Deleta uma pesquisa de restaurante.

  30. Pesquisa Avançada:

  31. GET /pesquisar_restaurantes/<nome_restaurante>: Pesquisa restaurantes pelo nome.
  32. GET /pesquisar_prato/<nome_produto>: Pesquisa produtos pelo nome.
  33. GET /filtrar_maior_distancia: Lista restaurantes por ordem decrescente de distância.
  34. GET /filtrar_menor_distancia: Lista restaurantes por ordem crescente de distância.
  35. GET /filtrar_menor_preco: Lista produtos por ordem crescente de preço.
  36. GET /filtrar_maior_preco: Lista produtos por ordem decrescente de preço.

Erro Handling

  • @app.errorhandler(404): Um manipulador de erros personalizado para a rota 404 (página não encontrada).

Execução do Servidor

  • app.run(): Inicia o servidor Flask.

Uso

O servidor pode ser utilizado para criar um sistema

de gestão de restaurantes e produtos, onde usuários podem realizar pesquisas e gerenciar informações relevantes. Ele oferece uma API RESTful para a interação com um banco de dados de restaurantes e produtos.