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.

Modifica questa pagina