Folder Structuur¶
Nu dat je je eerste Vapor app hebt gemaakt, gebouwd en uitgevoerd, laten we een moment nemen om jezelf vertrouwd te maken met Vapor's folder structuur. De structuur is gebaseerd op SPM's folder structuur, dus als je al met SPM hebt gewerkt zou deze je bekend voor moeten komen.
.
├── Public
├── Sources
│ ├── App
│ │ ├── Controllers
│ │ ├── Migrations
│ │ ├── Models
│ │ ├── configure.swift
│ │ ├── entrypoint.swift
│ │ └── routes.swift
│
├── Tests
│ └── AppTests
└── Package.swift
The secties hieronder leggen elk deel van de folder structuur uit in meer detail.
Public¶
Deze map bevat alle publieke bestanden die door uw app geserveerd zullen worden als FileMiddleware
is ingeschakeld. Dit zijn meestal afbeeldingen, stylesheets en browserscripts. Bijvoorbeeld, een verzoek aan localhost:8080/favicon.ico
zal controleren of Public/favicon.ico
bestaat en deze terugsturen.
U moet FileMiddleware
aanzetten in uw configure.swift
bestand voordat Vapor publieke bestanden kan serveren.
// Dient bestanden op uit `Public/` directory
let fileMiddleware = FileMiddleware(
publicDirectory: app.directory.publicDirectory
)
app.middleware.use(fileMiddleware)
Sources¶
Deze map bevat alle Swift bronbestanden voor je project.
De mappen op het hoogste niveau, App
en Run
, geven de modules van uw pakket weer,
zoals aangegeven in het SPM manifest.
App¶
Dit is waar al je applicatie logica naartoe gaat.
Controllers¶
Controllers zijn een goede manier om applicatie logica te groeperen. De meeste controllers hebben veel functies die een verzoek aannemen en een soort antwoord teruggeven.
Migrations¶
De migraties map is waar uw database migraties naar toe gaan als u Fluent gebruikt.
Models¶
De models map is een goede plaats om uw Content
structs of Fluent Model
s op te slaan.
configure.swift¶
Dit bestand bevat de configure(_:)
functie. Deze methode wordt aangeroepen door entrypoint.swift
om de nieuw aangemaakte Application
te configureren. Dit is waar je services zoals routes, databases, providers, en meer moet registreren.
entrypoint.swift¶
Dit bestand bevat het @main
-toegangspunt voor de toepassing die uw Vapor-toepassing instelt, configureert en uitvoert.
routes.swift¶
Dit bestand bevat de routes(_:)
functie. Deze methode wordt aangeroepen aan het einde van configure(_:)
om routes te registreren voor je Application
.
Tests¶
Elke niet-uitvoerbare module in je Sources
folder kan een overeenkomstige folder hebben in Tests
. Deze bevalt code gebouwd op de XCTest
module om je pakket te testen. Testen kunnen uitgevoerd worden door swift test
te gebruiken op de command line of door ⌘+U in te drukken in Xcode.
AppTests¶
Deze folder bevat de unit tests voor code in je App
module.
Package.swift¶
Tenslotte is er SPM's pakket manifest.