Ordnerstruktur¶
Lass uns einen Blick auf die Ordnerstruktur von Vapor werfen. Die Ordnerstruktur von Vapor orientiert sich an den Vorgaben des Swift Package Managers. Falls du schon mal mit dem SPM gearbeitet hast, sollte sie dir bekannt vorkommen.
.
├── Public
├── Sources
│ ├── App
│ │ ├── Controllers
│ │ ├── Migrations
│ │ ├── Models
│ │ ├── configure.swift
│ │ └── routes.swift
│ └── Run
│ └── main.swift
├── Tests
│ └── AppTests
└── Package.swift
Public¶
Der Ordner Public beinhaltet Dateien, die sozusagen mitveröffentlicht werden. Das können Dateien für die Seitendarstellung sein, wie z. B. Bilder, CSS/JS-Dateien sein. Damit Vapor während der Ausführung auf den Ordner zugreifen kann muss eine FileMiddleware in der Datei configure.swift
mitangegeben werden.
// Serves files from `Public/` directory
let fileMiddleware = FileMiddleware(
publicDirectory: app.directory.publicDirectory
)
app.middleware.use(fileMiddleware)
Sources¶
Im Ordner Sources befinden sich die eigentlichen Anwendungsdateien, unterteilt in die Unterordner App und Run. Die beiden Unterordnern stellen Paketmodule dar. Mehr dazu findest du im Abschnitt Swift Package Manager.
App¶
Der Ordner App beinhaltet die Anwendungslogik.
Controllers¶
Der Ordner Controllers beinhaltet die Definitionen der Endpunkte der Anwendung. Mehr dazu findest du im Abschnitt Controllers.
Migrations¶
Der Ordner Migrations beinhaltet die Definitionen zu Tabellen der Datebank.
Models¶
Der Ordner Models beinhaltet die Klassendefinitionen für die Entitäten.
configure.swift¶
Die Datei configure.swift umfasst die Methode configure(_:)
. Sie wird in der Datei main.swift
aufgerufen um die Anwendung mit entsprechenden Angaben zu Endpunkten, zur Datenbank oder zu Providern zu konfigurieren.
routes.swift¶
Die Datei routes.swift beinhaltet die Methode routes(_:)
. Sie wird am Ende von der configure(_:)
-Methode aufgerufen um die Endpunkte zu registrieren.
Run¶
Der Ordner Run stellt die Ausführungsdatei dar.
main.swift¶
Die Datei main.swift erstellt eine Instanz der Anwendung und führt diese aus.
Tests¶
Für jedes Paketmodul kann ein entsprechender Ordner unter Tests angelegt werden.
AppTests¶
Der Ornder AppTests beinhaltet alle möglichen Tests für Komponenten der Anwendung.
Package.swift¶
Die Datei Package.swift ist die Paketbeschreibung.