3.1 KiB
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.