フォルダ構造¶
あなたの初めての Vapor アプリを作成し、ビルドし、実行したので、Vapor のフォルダ構造に慣れるための時間を取りましょう。この構造は、SPM のフォルダ構造に基づいていますので、以前に SPM を使ったことがあれば、見慣れているはずです。
.
├── Public
├── Sources
│ ├── App
│ │ ├── Controllers
│ │ ├── Migrations
│ │ ├── Models
│ │ ├── configure.swift
│ │ ├── entrypoint.swift
│ │ └── routes.swift
│
├── Tests
│ └── AppTests
└── Package.swift
以下のセクションでは、フォルダ構造の各部分について詳しく説明します。
Public¶
このフォルダには、FileMiddleware
が有効になっている場合にアプリによって提供される公開ファイルが含まれます。これは通常、画像やスタイルシート、ブラウザスクリプトです。例えば、localhost:8080/favicon.ico
へのリクエストは、Public/favicon.ico
が存在するかどうかを確認し、それを返します。
Vapor が公開ファイルを提供できるようにする前に、configure.swift
ファイルで FileMiddleware
を有効にする必要があります。
// Serves files from `Public/` directory
let fileMiddleware = FileMiddleware(
publicDirectory: app.directory.publicDirectory
)
app.middleware.use(fileMiddleware)
Sources¶
このフォルダには、プロジェクトのすべての Swift ソースファイルが含まれています。
トップレベルのフォルダ、App
は、SwiftPM のマニフェストで宣言されたパッケージのモジュール反映をしています。
App¶
ここには、アプリケーションの全てのロジックが入ります。
Controllers¶
Controllers は、アプリケーションのロジックをまとめるのに適しています。ほとんどのコントローラには、リクエストを受け取り、何らかの形でレスポンスを返す多くの関数があります。
Migrations¶
Migrations フォルダは、Fluent を使用している場合、データベースの移行を格納する場所です。
Models¶
Models フォルダは、Content
構造体や Fluent の Model
を保存するのに適しています。
configure.swift¶
このファイルには、configure(_:)
関数が含まれています。このメソッドは、新しく作成された Application
を設定するために entrypoint.swift
から呼び出されます。ここで、ルート、データベース、プロバイダなどのサービスの登録をする必要があります。
entrypoint.swift¶
このファイルには、Vapor アプリケーションの設定と実行を行うアプリケーションの @main
エントリーポイントが含まれています。
routes.swift¶
このファイルには、routes(_:)
関数が含まれています。このメソッドは、Application
へのルートを登録するために、configure(_:)
の終わり近くで呼び出されます。
Tests¶
Sources
フォルダ内の各非実行可能モジュールには、Tests
の対応するフォルダがあります。これには、パッケージのテストのために XCTest
モジュールに基づいてビルドされたコードが含まれています。テストは、コマンドラインで swift test
を使用するか、Xcode で ⌘+U を押すと実行できます。
AppTests¶
このフォルダには、App
モジュールのコードの単体テストが含まれています。
Package.swift¶
最後に、SPM のパッケージマニフェストがあります。