mirror of https://github.com/vapor/docs.git
82 lines
3.1 KiB
Markdown
82 lines
3.1 KiB
Markdown
# 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](spm.md), 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`.
|
|
|
|
```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](spm.md).
|
|
|
|
### 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](spm.md).
|