Skip to content

Latest commit

 

History

History
62 lines (45 loc) · 3.35 KB

struct.md

File metadata and controls

62 lines (45 loc) · 3.35 KB
- app/
  - cmd/
    - root.go
    - database.go
    - server.go
  - http/
    - handler/
      - user_handler.go
    - middleware/
      - auth_middleware.go
    - router/
      - router.go
  - repository/
    - user_repository.go
  - model/
    - user.go
  - security/
    - password_hash.go
  - service/
    - user_service.go
  - main.go
- database/
  - schema.sql
- .env
- go.mod
- go.sum
  • app/cmd: Este directorio almacena los comandos definidos con Cobra para tu aplicación. Los comandos suelen estar en archivos separados. Aquí hay algunos ejemplos:

    • root.go: Define el comando raíz, que puede no hacer mucho más que proporcionar opciones globales y manejar la inicialización de la aplicación. Desde aquí, puedes llamar a otros comandos y configurar las opciones globales.

    • database.go: Define comandos relacionados con la base de datos, como la creación de la base de datos o la ejecución de migraciones. Estos comandos se utilizan para preparar la base de datos antes de ejecutar la aplicación principal.

    • server.go: Define comandos relacionados con la ejecución del servidor web. Pueden incluir comandos para iniciar el servidor, definir el puerto y otras configuraciones relacionadas con el servidor web.

  • app/http: Este directorio contiene la lógica relacionada con las solicitudes HTTP y el enrutamiento. Aquí encontrarás subdirectorios como:

    • handler: Donde puedes definir los manejadores de rutas HTTP, como user_handler.go, que maneja las rutas relacionadas con los usuarios.

    • middleware: Para definir middleware, como auth_middleware.go, que puede manejar la autenticación y la autorización de las solicitudes.

    • router: Donde puedes definir la configuración de enrutamiento de tus rutas HTTP.

  • app/repository: Contiene archivos como user_repository.go, que albergan la lógica para interactuar con la base de datos en el contexto del patrón de diseño de repositorio.

  • app/model: Define las estructuras de datos relacionadas con tu modelo de dominio. Por ejemplo, user.go puede definir la estructura de datos de un usuario.

  • app/security: Aquí es donde puedes colocar funciones de seguridad, como password_hash.go, que implementa la lógica para el hashing de contraseñas.

  • app/service: Contiene la lógica empresarial de tu aplicación, como user_service.go, que puede utilizar el repositorio y otras funciones para realizar operaciones relacionadas con los usuarios.

  • main.go: El punto de entrada principal de tu aplicación, que puede configurar los comandos de Cobra y manejar la ejecución de la aplicación.

  • database: Aquí se encuentra el archivo schema.sql, que incluye las sentencias SQL para la creación de la base de datos y las tablas necesarias.

  • .env: Este archivo almacena las variables de entorno, como configuraciones de la base de datos o claves secretas.

  • go.mod y go.sum: Son archivos del sistema de gestión de dependencias de Go.

Esta estructura de carpetas organiza tu aplicación de manera modular y permite que cada parte cumpla con su función específica. Los comandos de Cobra, que se encuentran en app/cmd, son responsables de la ejecución de acciones específicas, como la inicialización de la base de datos o la ejecución del servidor web. La lógica de la aplicación y la base de datos se mantienen separadas y se pueden reutilizar fácilmente en otros contextos.