Vai al contenuto

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.