Struttura della Cartella¶
Dopo aver creato, compilato ed eseguito la tua prima applicazione, è il momento di dare un'occhiata a come Vapor struttura le cartelle del progetto. La struttura si basa su SwiftPM, quindi se hai già familiarità con SwiftPM ti sentirai a casa.
.
├── Public
├── Sources
│ ├── App
│ │ ├── Controllers
│ │ ├── Migrations
│ │ ├── Models
│ │ ├── configure.swift
│ │ ├── entrypoint.swift
│ │ └── routes.swift
│
├── Tests
│ └── AppTests
└── Package.swift
Le seguenti sezioni spiegano in maggior dettaglio la struttura della cartella.
Public¶
Questa cartella contiene tutti i file pubblici che saranno messi a disposizione dall'applicazione se FileMiddleware è abilitato. In genere si tratta di immagini, style sheet e script del browser. Ad esempio, una richiesta a localhost:8080/favicon.ico controlla se Public/favicon.ico esiste e lo restituisce.
Affinché Vapor possa servire i file pubblici, bisognerà abilitare FileMiddleware nel file configure.swift.
// Fornisce i file dalla cartella `Public/`
let fileMiddleware = FileMiddleware(
publicDirectory: app.directory.publicDirectory
)
app.middleware.use(fileMiddleware)
Sources¶
Questa cartella contiene tutti i file sorgente Swift che verranno utilizzati dal progetto.
La cartella di primo livello, App, riflette il modulo del tuo pacchetto, come dichiarato nel manifesto SwiftPM.
App¶
La cartella App contiene tutta la logica dell'applicazione.
Controllers¶
I controller sono un ottimo modo per raggruppare la logica dell'applicazione. La maggior parte dei controller ha diverse funzioni che accettano una richiesta e restituiscono qualche tipo di risposta.
Migrations¶
Se si utilizza Fluent, questa cartella contiene le migrazioni del database.
Models¶
La cartella dei modelli è un ottimo posto per memorizzare le strutture Content e i modelli di Fluent.
configure.swift¶
Questo file contiene la funzione configure(_:). Questo metodo viene chiamato da entrypoint.swift per configurare la nuova Application creata. Qui vengono registrati gli endpoints, i database, i providers e altro ancora.
entrypoint.swift¶
Questo file contiene la funzione main(_:). Questo metodo viene chiamato dal sistema operativo per avviare l'applicazione. In genere non è necessario modificarlo.
routes.swift¶
Questo file contiene la funzione routes(_:). Questo metodo viene chiamato da configure(_:) per registrare gli endpoint dell'applicazione.
Tests¶
Per ogni modulo non eseguibile nella cartella Sources si può avere una cartella corrispondente in Tests. Essa conterrà i test per quel modulo scritti sulla base del modulo di testing XCTest. I test possono essere eseguiti utilizzando swift test da riga di comando o premendo ⌘+U in Xcode.
AppTests¶
Questa cartella contiene gli unit test per il codice del modulo App.
Package.swift¶
Infine, abbiamo il manifesto del pacchetto SPM.