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 Models 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.