Estructura de Carpetas#

Una vez has creado, compilado y ejecutado tu primera app de Vapor, vamos a familiarizarte con la estructura de carpetas de Vapor. La estructura está basada en la utilizada por SPM, así que si has trabajado anteriormente con SPM debería ser algo conocido.

.
├── Public
├── Sources
│   ├── App
│   │   ├── Controllers
│   │   ├── Migrations
│   │   ├── Models
│   │   ├── configure.swift 
│   │   ├── entrypoint.swift
│   │   └── routes.swift
│       
├── Tests
│   └── AppTests
└── Package.swift

Las secciones siguientes explican de manera más detallada cada parte de la estructura de carpetas.

Public#

Esta carpeta contiene los ficheros públicos que serán servidos por tu app si FileMiddleware está activado. Suelen ser imágenes, hojas de estilo o scripts de navegador. Por ejemplo, una petición a localhost:8080/favicon.ico comprobará si Public/favicon.ico existe y lo devolverá.

Necesitarás habilitar FileMiddleware en tu fichero configure.swift para que Vapor pueda servir ficheros públicos.

// Serves files from `Public/` directory
let fileMiddleware = FileMiddleware(
    publicDirectory: app.directory.publicDirectory
)
app.middleware.use(fileMiddleware)

Sources#

Esta carpeta contiene todos los ficheros Swift de código fuente para tu proyecto. La carpeta App, de nivel superior, corresponde al módulo de tu package, tal y como está declarado en el manifiesto de SwiftPM.

App#

Aquí es donde se aloja toda la lógica de tu app.

Controllers#

Los controladores son una buena manera de agrupar lógica de aplicación. La mayoría de controladores tienen muchas funciones que aceptan una petición y devuelven algún tipo de respuesta.

Migrations#

En esta carpeta es donde se ubican las migraciones de tu base de datos si estás usando Fluent.

Models#

La carpeta models es un buen lugar en el que guardar los structs Content o los Model de Fluent.

configure.swift#

Este fichero contiene la función configure(_:). Este método es llamado por entrypoint.swift para configurar la Application recién creada. Aquí es donde deberías registrar servicios como rutas, bases de datos, proveedores y otros.

entrypoint.swift#

Este fichero contiene el punto de entrada @main para la aplicación, que crea, configura y ejecuta tu aplicación Vapor.

routes.swift#

Este fichero contiene la función routes(_:). Este método es llamado casi al final de configure(_:) para registrar rutas en tu Application.

Tests#

Cada módulo no ejecutable en tu carpeta Sources puede tener una carpeta correspondiente en Tests. Contiene código del módulo XCTest para hacer testing a tu package. Los tests pueden ser ejecutados usando swift test en la línea de comandos o pulsando ⌘+U en Xcode.

AppTests#

Esta carpeta contiene los tests unitarios para el código en tu módulo App.

Package.swift#

Finalmente está el manifiesto del package SPM.

Editar esta página