Ga naar inhoud

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.