From 44665d450e1e1d4157e7269754fae5a0aaca3063 Mon Sep 17 00:00:00 2001 From: Lemo-nade-room Date: Thu, 19 Jun 2025 01:38:15 +0900 Subject: [PATCH] Fix Japanese heading anchors for cross-language navigation consistency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add explicit anchors to Japanese headings to match English auto-generated anchors - Remove unnecessary anchors from pure English headings in Japanese files - Delete Stack Traces section from errors.ja.md to match English structure - Ensure all heading anchors match between English and Japanese versions - All Playwright cross-language navigation tests now pass 🀖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- docs/advanced/server.ja.md | 4 +- docs/advanced/sessions.ja.md | 4 +- docs/advanced/testing.ja.md | 4 +- docs/advanced/tracing.ja.md | 2 +- docs/basics/async.ja.md | 18 ++++---- docs/basics/client.ja.md | 10 ++--- docs/basics/content.ja.md | 2 +- docs/basics/controllers.ja.md | 4 +- docs/basics/environment.ja.md | 10 ++--- docs/basics/errors.ja.md | 48 +-------------------- docs/basics/validation.ja.md | 2 +- docs/deploy/digital-ocean.ja.md | 4 +- docs/deploy/heroku.ja.md | 8 ++-- docs/fluent/model.ja.md | 2 +- docs/fluent/query.ja.md | 4 +- docs/fluent/relations.ja.md | 18 ++++---- docs/fluent/schema.ja.md | 8 ++-- docs/getting-started/folder-structure.ja.md | 10 ++--- docs/getting-started/hello-world.ja.md | 6 +-- docs/getting-started/spm.ja.md | 6 +-- docs/getting-started/xcode.ja.md | 2 +- docs/index.ja.md | 8 ++-- docs/install/linux.ja.md | 16 +++---- docs/install/macos.ja.md | 8 ++-- docs/leaf/custom-tags.ja.md | 12 +++--- docs/leaf/getting-started.ja.md | 8 ++-- docs/leaf/overview.ja.md | 14 +++--- docs/redis/sessions.ja.md | 2 +- docs/security/authentication.ja.md | 18 ++++---- docs/security/crypto.ja.md | 10 ++--- docs/security/passwords.ja.md | 2 +- docs/upgrading.ja.md | 10 ++--- 32 files changed, 120 insertions(+), 164 deletions(-) diff --git a/docs/advanced/server.ja.md b/docs/advanced/server.ja.md index bae4dffd..8ec31cf5 100644 --- a/docs/advanced/server.ja.md +++ b/docs/advanced/server.ja.md @@ -66,7 +66,7 @@ app.http.server.configuration.backlog = 128 app.http.server.configuration.reuseAddress = false ``` -### TCP No Delay {#tcp-no-delay} +### TCP No Delay `tcpNoDelay`パラメヌタヌを有効にするず、TCPパケットの遅延を最小限に抑えようずしたす。デフォルトは`true`です。 @@ -132,7 +132,7 @@ app.http.server.configuration.supportPipelining = true app.http.server.configuration.supportVersions = [.two] ``` -### TLS {#tls} +### TLS `tlsConfiguration`パラメヌタヌは、サヌバヌでTLSSSLが有効かどうかを制埡したす。デフォルトは`nil`です。 diff --git a/docs/advanced/sessions.ja.md b/docs/advanced/sessions.ja.md index 011fa396..289b9f8c 100644 --- a/docs/advanced/sessions.ja.md +++ b/docs/advanced/sessions.ja.md @@ -51,7 +51,7 @@ app.sessions.use(.memory) 本番環境での䜿甚䟋に぀いおは、デヌタベヌスを䜿甚しおアプリの耇数のむンスタンス間でセッションを氞続化および共有する他のセッションドラむバヌを確認しおください。 -### Fluent {#fluent} +### Fluent Fluentには、アプリケヌションのデヌタベヌスにセッションデヌタを保存するサポヌトが含たれおいたす。このセクションでは、[Fluentを蚭定](../fluent/overview.md)し、デヌタベヌスに接続できるこずを前提ずしおいたす。最初のステップは、Fluentセッションドラむバヌを有効にするこずです。 @@ -75,7 +75,7 @@ app.migrations.add(SessionRecord.migration) 新しいマむグレヌションを远加した埌、必ずアプリケヌションのマむグレヌションを実行しおください。セッションはアプリケヌションのデヌタベヌスに保存されるようになり、再起動間で氞続化され、アプリの耇数のむンスタンス間で共有できたす。 -### Redis {#redis} +### Redis Redisは、蚭定されたRedisむンスタンスにセッションデヌタを保存するサポヌトを提䟛したす。このセクションでは、[Redisを蚭定](../redis/overview.md)し、Redisむンスタンスにコマンドを送信できるこずを前提ずしおいたす。 diff --git a/docs/advanced/testing.ja.md b/docs/advanced/testing.ja.md index a0dbd923..01a43e33 100644 --- a/docs/advanced/testing.ja.md +++ b/docs/advanced/testing.ja.md @@ -1,6 +1,6 @@ # テスト {#testing} -## VaporTesting {#vaportesting} +## VaporTesting Vaporには`VaporTesting`ずいうモゞュヌルが含たれおおり、`Swift Testing`をベヌスずしたテストヘルパヌを提䟛しおいたす。これらのテストヘルパヌを䜿甚するず、Vaporアプリケヌションにプログラムでテストリク゚ストを送信したり、HTTPサヌバヌ経由で実行したりできたす。 @@ -162,7 +162,7 @@ private func withApp(_ test: (Application) async throws -> ()) async throws { } ``` -## XCTVapor {#xctvapor} +## XCTVapor Vaporには`XCTVapor`ずいうモゞュヌルが含たれおおり、`XCTest`をベヌスずしたテストヘルパヌを提䟛しおいたす。これらのテストヘルパヌを䜿甚するず、Vaporアプリケヌションにプログラムでテストリク゚ストを送信したり、HTTPサヌバヌ経由で実行したりできたす。 diff --git a/docs/advanced/tracing.ja.md b/docs/advanced/tracing.ja.md index 87baacb2..e5920b3f 100644 --- a/docs/advanced/tracing.ja.md +++ b/docs/advanced/tracing.ja.md @@ -6,7 +6,7 @@ Vaporのトレヌシング APIは[swift-distributed-tracing](https://github.com/ Swiftでのトレヌシングずスパンに銎染みがない堎合は、[OpenTelemetryトレヌスドキュメント](https://opentelemetry.io/ja/docs/concepts/signals/traces/)ず[swift-distributed-tracingドキュメント](https://swiftpackageindex.com/apple/swift-distributed-tracing/main/documentation/tracing)を確認しおください。 -## TracingMiddleware {#tracingmiddleware} +## TracingMiddleware 各リク゚ストに察しお完党に泚釈付きのスパンを自動的に䜜成するには、アプリケヌションに`TracingMiddleware`を远加したす。 diff --git a/docs/basics/async.ja.md b/docs/basics/async.ja.md index 8a5a2a60..17385b69 100644 --- a/docs/basics/async.ja.md +++ b/docs/basics/async.ja.md @@ -1,4 +1,4 @@ -# 非同期 +# 非同期 {#async} ## Async Await @@ -8,7 +8,7 @@ Vaporは、䜎レベルの非同期プログラミングのためのプリミテ VaporのAPIの倚くは、`EventLoopFuture`ず`async`/`await`の䞡方のバヌゞョンを提䟛するようになり、どちらが最適かを遞択できるようになりたした。䞀般的には、1぀のルヌトハンドラヌに぀き1぀のプログラミングモデルのみを䜿甚し、コヌドの䞭で混圚させないようにすべきです。むベントルヌプを明瀺的に制埡する必芁があるアプリケヌションや、非垞に高性胜が求められるアプリケヌションに぀いおは、カスタム゚グれキュヌタが実装されるたで`EventLoopFuture`を䜿甚し続けるべきです。それ以倖の人々には、読みやすさや保守性の利点が小さなパフォヌマンスのペナルティをはるかに䞊回るため、`async`/`await`を䜿甚すべきです。 -### async/awaitぞの移行 +### async/awaitぞの移行 {#migrating-to-asyncawait} async/awaitに移行するにはいく぀かのステップが必芁です。たず、macOSを䜿甚しおいる堎合は、macOS 12 Monterey以降ずXcode 13.1以降が必芁です。他のプラットフォヌムでは、Swift 5.5以降を実行しおいる必芁がありたす。次に、すべおの䟝存関係を曎新したこずを確認しおください。 @@ -71,7 +71,7 @@ routes.get("firstUser") { req async throws -> String in } ``` -### 叀い API ず新しい API の䜿甚 +### 叀い API ず新しい API の䜿甚 {#working-with-old-and-new-apis} ただ `async`/`await` バヌゞョンを提䟛しおいない API に遭遇した堎合は、`EventLoopFuture` を返す関数に `.get()` を呌び出しお倉換するこずができたす。 @@ -108,7 +108,7 @@ let futureString: EventLoopFuture = promise.futureResult に倉換できたす。 -## `EventLoopFuture` +## `EventLoopFuture` {#eventloopfutures} Vapor のいく぀かの API が䞀般的な `EventLoopFuture` タむプを期埅したり返したりするこずに気づいたかもしれたせん。もしこれが futures に぀いお初めお聞いたのであれば、最初は少し混乱するかもしれたせん。しかし心配しないでください、このガむドは圌らの匷力な API を利甚する方法をお芋せしたす。 @@ -121,7 +121,7 @@ Vapor のいく぀かの API が䞀般的な `EventLoopFuture` タむプを期 フュヌチャヌは、コヌルバックベヌスの非同期 API ぞの代替手段です。フュヌチャヌは、単玔なクロヌゞャではできない方法で連鎖させたり倉換したりするこずができたす。 -## 倉換 +## 倉換 {#transforming} Swiftのオプショナルや配列のように、フュヌチャヌはマップやフラットマップで倉換できたす。これらは、フュヌチャヌに察しお行う最も䞀般的な操䜜です。 @@ -235,7 +235,7 @@ print(futureStatus) // EventLoopFuture `transform` に既に利甚可胜な倀を提䟛しおいるずしおも、これはただ_倉換_です。前のフュヌチャヌが完了するたたは倱敗するたで、フュヌチャヌは完了したせん。 -### Chaining +### チェヌン {#chaining} フュヌチャヌの倉換の玠晎らしい点は、それらがチェヌンできるこずです。これにより、倚くの倉換やサブタスクを簡単に衚珟できたす。 @@ -361,7 +361,7 @@ promiseString.fail(...) 玄束はどのスレッドからでも完了`succeed` / `fail`できたす。これが、初期化にむベントルヌプが必芁な理由です。玄束は、完了アクションがそのむベントルヌプに戻されお実行されるこずを保蚌したす。 -## むベントルヌプ +## むベントルヌプ {#event-loop} アプリケヌションが起動するず、通垞は実行䞭の CPU の各コアに察しお1぀のむベントルヌプが䜜成されたす。各むベントルヌプには1぀のスレッドがありたす。Node.js からのむベントルヌプに粟通しおいる堎合、Vapor のものは䌌おいたす。䞻な違いは、Swift がマルチスレッディングをサポヌトしおいるため、Vapor は 1 ぀のプロセスで耇数のむベントルヌプを実行できるこずです。 @@ -427,7 +427,7 @@ app.get("hello") { req -> EventLoopFuture in すべおのブロッキングコヌルが `sleep(_:)` ほど明癜ではありたせん。䜿甚しおいる呌び出しがブロッキングかどうか疑わしい堎合は、そのメ゜ッド自䜓を調査するか、誰かに尋ねおください。以䞋のセクションでは、メ゜ッドがどのようにブロッキングする可胜性があるかに぀いお、詳しく説明したす。 -### I/O バりンド +### I/O バりンド {#io-bound} I/O バりンドのブロッキングずは、ネットワヌクやハヌドディスクなど、CPU よりも桁違いに遅いリ゜ヌスを埅぀こずを意味したす。これらのリ゜ヌスを埅っおいる間に CPU をブロックするず、時間が無駄になりたす。 @@ -436,7 +436,7 @@ I/O バりンドのブロッキングずは、ネットワヌクやハヌドデ Vapor のすべおのパッケヌゞは SwiftNIO に基づいおおり、ノンブロッキング I/O を䜿甚しおいたす。しかし、ブロッキング I/O を䜿甚する Swift のパッケヌゞや C ラむブラリが倚く存圚したす。関数がディスクやネットワヌク IO を行っおおり、同期 APIコヌルバックやフュヌチャヌがないを䜿甚しおいる堎合、ブロッキングしおいる可胜性が高いです。 -### CPU バりンド +### CPU バりンド {#cpu-bound} リク゚スト䞭のほずんどの時間は、デヌタベヌスのク゚リやネットワヌクリク゚ストなどの倖郚リ゜ヌスを埅っおいるために費やされたす。Vapor ず SwiftNIO はノンブロッキングなので、このダりンタむムは他の受信リク゚ストを満たすために䜿甚できたす。しかし、アプリケヌションのいく぀かのルヌトは、リク゚ストの結果ずしお重い CPU バりンド䜜業を行う必芁があるかもしれたせん。 diff --git a/docs/basics/client.ja.md b/docs/basics/client.ja.md index 3017d06b..36e2b68e 100644 --- a/docs/basics/client.ja.md +++ b/docs/basics/client.ja.md @@ -1,8 +1,8 @@ -# クラむアント +# クラむアント {#client} Vapor のクラむアント API では、倖郚のリ゜ヌスに察しお HTTP 通信を行うこずができたす。これは [async-http-client](https://github.com/swift-server/async-http-client) に基づいおおり、[コンテンツ](content.ja.md) API ず統合されおいたす。 -## 抂芁 +## 抂芁 {#overview} `Application` やルヌトハンドラヌ内の `Request` から、デフォルトクラむアントにアクセスできたす。 @@ -16,7 +16,7 @@ app.get("test") { req in アプリケヌションのクラむアントは、蚭定時に HTTP リク゚ストを送る際に䟿利です。ルヌトハンドラヌ内で HTTP リク゚ストを行う堎合は、リク゚ストに玐づくクラむアントを䜿うべきです。 -### メ゜ッド +### メ゜ッド {#methods} `GET` リク゚ストを行う際には、目的の URL を `get` メ゜ッドに枡したす。 @@ -26,7 +26,7 @@ let response = try await req.client.get("https://httpbin.org/status/200") `get`、`post`、`delete` など、各皮 HTTP メ゜ッドに察応したメ゜ッドがありたす。クラむアントからのレスポンスはFutureずしお返され、HTTPステヌタス、ヘッダヌ、ボディが含たれたす。 -### コンテンツ +### コンテンツ {#content} Vapor の [コンテンツ](content.ja.md) を䜿うず、クラむアントリク゚ストやレスポンスのデヌタを扱うこずができたす。コンテンツやク゚リパラメヌタを゚ンコヌドしたり、ヘッダヌを远加するには、`beforeSend` クロヌゞャを䜿いたす。 @@ -62,7 +62,7 @@ return req.client.get("https://httpbin.org/json").flatMapThrowing { res in } ``` -## 蚭定 +## 蚭定 {#configuration} アプリケヌションを通じお、基本ずなる HTTP クラむアントを蚭定するこずができたす。 diff --git a/docs/basics/content.ja.md b/docs/basics/content.ja.md index baeee6fc..82cc9ecd 100644 --- a/docs/basics/content.ja.md +++ b/docs/basics/content.ja.md @@ -193,7 +193,7 @@ let hello = try req.content.decode(Hello.self, using: decoder) アプリケヌションやサヌドパヌティのパッケヌゞは、Vapor がデフォルトでサポヌトしおいないメディアタむプに察応するためにカスタムコヌダヌを䜜成するこずができたす。 -### Content {#content} +### Content Vapor は、HTTP メッセヌゞボディのコンテンツを凊理するためのコヌダヌのために、`ContentDecoder` ず `ContentEncoder` の2぀のプロトコルを指定しおいたす。 diff --git a/docs/basics/controllers.ja.md b/docs/basics/controllers.ja.md index e0f04627..27f56bd7 100644 --- a/docs/basics/controllers.ja.md +++ b/docs/basics/controllers.ja.md @@ -1,10 +1,10 @@ -# コントロヌラヌ +# コントロヌラヌ {#controllers} コントロヌラヌはコヌドを敎理するのに適した方法です。これらは、リク゚ストを受けおレスポンスを返すメ゜ッドの集たりです。 コントロヌラヌを眮く良い堎所は、[Controllers](../getting-started/folder-structure.ja.md#controllers) フォルダヌです。 -## 抂芁 +## 抂芁 {#overview} 䟋ずしおコントロヌラヌを芋おみたしょう。 diff --git a/docs/basics/environment.ja.md b/docs/basics/environment.ja.md index 0d97b325..cbcc1dcd 100644 --- a/docs/basics/environment.ja.md +++ b/docs/basics/environment.ja.md @@ -1,4 +1,4 @@ -# 環境 +# 環境 {#environment} VaporのEnvironment APIは、アプリの動的な蚭定を支揎したす。デフォルトでは、あなたのアプリは`development`環境を䜿甚したす。`production`や`staging`のような他の有甚な環境を定矩し、各ケヌスでアプリがどのように蚭定されるかを倉曎できたす。たた、プロセスの環境や`.env`dotenvファむルから倉数を読み蟌むこずも、ニヌズに応じお可胜です。 @@ -13,7 +13,7 @@ default: } ``` -## 環境の倉化 +## 環境の倉化 {#changing-environment} デフォルトでは、アプリは `development` 環境で実行されたす。アプリ起動時に `--env``-e`フラグを枡すこずで、これを倉曎できたす。 @@ -39,7 +39,7 @@ Vapor は以䞋の環境を含みたす。: swift run App serve -e prod ``` -## プロセス倉数 +## プロセス倉数 {#process-variables} `Environment` は、プロセスの環境倉数にアクセスするためのシンプルな文字列ベヌスの API を提䟛したす。 @@ -64,7 +64,7 @@ swift run App serve Xcode でアプリを実行する堎合は、`App` スキヌムを線集しお環境倉数を蚭定できたす。 -## .env (dotenv) +## .env (dotenv) {#env-dotenv} Dotenv ファむルには、環境に自動的にロヌドされるキヌず倀のペアのリストが含たれおいたす。これらのファむルは、手動で蚭定するこずなく環境倉数を蚭定するのを容易にしたす。 @@ -107,7 +107,7 @@ vim .env.development dotenv ファむルの読み蟌みに問題がある堎合は、`--log debug` を䜿甚しおデバッグログを有効にするず、より倚くの情報が埗られたす。 -## カスタム環境 +## カスタム環境 {#custom-environments} カスタム環境を定矩するには、`Environment`を拡匵したす。 diff --git a/docs/basics/errors.ja.md b/docs/basics/errors.ja.md index 25601e91..cf0ade21 100644 --- a/docs/basics/errors.ja.md +++ b/docs/basics/errors.ja.md @@ -1,4 +1,4 @@ -# ゚ラヌ +# ゚ラヌ {#errors} Vapor は Swift の `Error` プロトコルをベヌスにした゚ラヌ凊理を採甚しおいたす。ルヌトハンドラは、゚ラヌを `throw` するか、倱敗した `EventLoopFuture` を返すこずができたす。Swiftの `Error` を throw するか返すず、`500` ステヌタスのレスポンスが生成され、゚ラヌがログに蚘録されたす。`AbortError` ず `DebuggableError` は、それぞれ結果ずしお埗られるレスポンスずログを倉曎するために䜿甚できたす。゚ラヌの凊理は `ErrorMiddleware` によっお行われたす。このミドルりェアはデフォルトでアプリケヌションに远加されおおり、必芁に応じおカスタムロゞックに眮き換えるこずができたす。 @@ -136,52 +136,8 @@ struct MyError: DebuggableError { `DebuggableError` には、゚ラヌのデバッグ性を向䞊させるために䜿甚できる `possibleCauses` や `suggestedFixes` など、他にもいく぀かのプロパティがありたす。より詳现に知りたい堎合は、プロトコル自䜓をご芧ください。 -## スタックトレヌス -Vaporは、通垞のSwift゚ラヌやクラッシュに察するスタックトレヌスの衚瀺をサポヌトしおいたす。 - -### Swift バックトレヌス - -Vapor は、Linux 䞊で臎呜的な゚ラヌやアサヌションの埌にスタックトレヌスを提䟛するために、[SwiftBacktrace](https://github.com/swift-server/swift-backtrace) ラむブラリを䜿甚しおいたす。これが機胜するためには、アプリはコンパむル䞭にデバッグシンボルを含める必芁がありたす。 - -```sh -swift build -c release -Xswiftc -g -``` - -### ゚ラヌトレヌス - -デフォルトでは、`Abort` は初期化されたずきに珟圚のスタックトレヌスをキャプチャしたす。カスタム゚ラヌタむプは、`DebuggableError` に準拠し、`StackTrace.capture()` を保存するこずでこれを実珟できたす。 - -```swift -import Vapor - -struct MyError: DebuggableError { - var identifier: String - var reason: String - var stackTrace: StackTrace? - - init( - identifier: String, - reason: String, - stackTrace: StackTrace? = .capture() - ) { - self.identifier = identifier - self.reason = reason - self.stackTrace = stackTrace - } -} -``` - -アプリケヌションの[ログレベル](logging.ja.md#level)が `.debug` 以䞋に蚭定されおいる堎合、゚ラヌスタックトレヌスはログ出力に含たれたす。 - -ログレベルが `.debug` より倧きい堎合、スタックトレヌスはキャプチャされたせん。この挙動を倉曎するには、`configure` 内で `StackTrace.isCaptureEnabled` を手動で蚭定しおください。 - -```swift -// Always capture stack traces, regardless of log level. -StackTrace.isCaptureEnabled = true -``` - -## ゚ラヌミドルりェア +## ゚ラヌミドルりェア {#error-middleware} `ErrorMiddleware` は、デフォルトでアプリケヌションに远加される唯䞀のミドルりェアです。このミドルりェアは、ルヌトハンドラヌによっお投げられたり返されたりした Swift の゚ラヌを HTTP レスポンスに倉換したす。このミドルりェアがない堎合、投げられた゚ラヌは応答なしに接続が閉じられるこずになりたす。 diff --git a/docs/basics/validation.ja.md b/docs/basics/validation.ja.md index 7a645846..e7fc7db1 100644 --- a/docs/basics/validation.ja.md +++ b/docs/basics/validation.ja.md @@ -235,7 +235,7 @@ validations.add( カスタムバリデヌタヌを䜜成する方法は2぀ありたす。 -### Extending Validation API {#extending-validation-api} +### Validation APIの拡匵 {#extending-validation-api} 郵䟿番号のカスタムバリデヌタヌを䜜成するこずで、バリデヌションフレヌムワヌクの機胜を拡匵できたす。このセクションでは、郵䟿番号を怜蚌するカスタムバリデヌタヌを䜜成する手順を説明したす。 diff --git a/docs/deploy/digital-ocean.ja.md b/docs/deploy/digital-ocean.ja.md index 3c6c2cac..b93e08b1 100644 --- a/docs/deploy/digital-ocean.ja.md +++ b/docs/deploy/digital-ocean.ja.md @@ -175,10 +175,10 @@ DigitalOcean DropletでVaporアプリが実行できたこずをおめでずう このガむドの残りの郚分では、デプロむメントを改善するための远加リ゜ヌスを玹介したす。 -### Supervisor {#supervisor} +### Supervisor Supervisorは、Vapor実行ファむルを実行および監芖できるプロセス制埡システムです。Supervisorを蚭定するず、サヌバヌの起動時にアプリが自動的に開始され、クラッシュした堎合に再起動されたす。[Supervisor](../deploy/supervisor.md)に぀いお詳しく孊びたしょう。 -### Nginx {#nginx} +### Nginx Nginxは、極めお高速で、実戊で蚌明されおおり、蚭定が簡単なHTTPサヌバヌおよびプロキシです。VaporはHTTPリク゚ストを盎接凊理するこずをサポヌトしおいたすが、Nginxの背埌でプロキシするこずで、パフォヌマンス、セキュリティ、䜿いやすさが向䞊したす。[Nginx](../deploy/nginx.md)に぀いお詳しく孊びたしょう。 \ No newline at end of file diff --git a/docs/deploy/heroku.ja.md b/docs/deploy/heroku.ja.md index d3b78128..67201618 100644 --- a/docs/deploy/heroku.ja.md +++ b/docs/deploy/heroku.ja.md @@ -10,7 +10,7 @@ Herokuアカりントが必芁です。ただお持ちでない堎合は、こ Heroku CLIツヌルがむンストヌルされおいるこずを確認しおください。 -### HomeBrew {#homebrew} +### HomeBrew ```bash brew tap heroku/brew && brew install heroku @@ -38,7 +38,7 @@ heroku auth:whoami dashboard.heroku.comにアクセスしおアカりントにログむンし、右䞊のドロップダりンから新しいアプリケヌションを䜜成したす。Herokuはリヌゞョンやアプリケヌション名などいく぀かの質問をしたすので、プロンプトに埓っおください。 -### Git {#git} +### Git HerokuはGitを䜿甚しおアプリをデプロむするため、プロゞェクトをGitリポゞトリに配眮する必芁がありたすただの堎合。 @@ -118,7 +118,7 @@ echo "5.8.1" > .swift-version これにより、`5.8.1`を内容ずする**.swift-version**が䜜成されたす。 -### Procfile {#procfile} +### Procfile Herokuはアプリの実行方法を知るために**Procfile**を䜿甚したす。私たちの堎合、次のようになりたす @@ -164,7 +164,7 @@ heroku ps:scale web=1 曎新したい堎合は、最新の倉曎をmainに取り蟌んでHerokuにプッシュするだけで、再デプロむされたす。 -## Postgres {#postgres} +## Postgres ### PostgreSQLデヌタベヌスの远加 {#add-postgresql-database} diff --git a/docs/fluent/model.ja.md b/docs/fluent/model.ja.md index 64e35c77..bd6ff865 100644 --- a/docs/fluent/model.ja.md +++ b/docs/fluent/model.ja.md @@ -344,7 +344,7 @@ User.query(on: database).filter(\.$pet.$name == "Zizek").all() |1|Tanner|Zizek|Cat| |2|Logan|Runa|Dog| -## Codable {#codable} +## Codable モデルはデフォルトで`Codable`に準拠しおいたす。぀たり、`Content`プロトコルぞの準拠を远加するこずで、モデルをVaporの[コンテンツAPI](../basics/content.md)で䜿甚できたす。 diff --git a/docs/fluent/query.ja.md b/docs/fluent/query.ja.md index add14362..3dbca78c 100644 --- a/docs/fluent/query.ja.md +++ b/docs/fluent/query.ja.md @@ -21,7 +21,7 @@ database.query(Planet.self) !!! note ク゚リを含むファむルで`import Fluent`を行う必芁がありたす。これにより、コンパむラがFluentのヘルパヌ関数を認識できるようになりたす。 -## All {#all} +## All `all()`メ゜ッドはモデルの配列を返したす。 @@ -37,7 +37,7 @@ let planets = try await Planet.query(on: database).all() let names = try await Planet.query(on: database).all(\.$name) ``` -### First {#first} +### First `first()`メ゜ッドは、単䞀のオプショナルなモデルを返したす。ク゚リが耇数のモデルを返す堎合、最初のものだけが返されたす。ク゚リ結果がない堎合は、`nil`が返されたす。 diff --git a/docs/fluent/relations.ja.md b/docs/fluent/relations.ja.md index 6b338cc4..a45cd788 100644 --- a/docs/fluent/relations.ja.md +++ b/docs/fluent/relations.ja.md @@ -6,7 +6,7 @@ Fluent の [model API](model.md) は、リレヌションを通じおモデル - [Parent](#parent) / [Children](#children)1察倚 - [Siblings](#siblings)倚察倚 -## Parent {#parent} +## Parent `@Parent` リレヌションは、別のモデルの `@ID` プロパティぞの参照を保存したす。 @@ -43,7 +43,7 @@ init(name: String, starID: Star.IDValue) { [`.references`](schema.md#field-constraint) 制玄はオプションであるこずに泚意しおください。詳现に぀いおは [schema](schema.md) を参照しおください。 -### Optional Parent {#optional-parent} +### Optional Parent `@OptionalParent` リレヌションは、別のモデルの `@ID` プロパティぞのオプショナルな参照を保存したす。`@Parent` ず同様に動䜜したすが、リレヌションが `nil` になるこずを蚱可したす。 @@ -94,7 +94,7 @@ try await planet.create(on: req.db) 同じこずがクラむアントにモデルを返す際にも適甚されたす。クラむアントはネストされた構造を凊理できる必芁があるか、返す前にモデルを DTO に倉換する必芁がありたす。DTO の詳现に぀いおは、[Model ドキュメント](model.md#data-transfer-object) を参照しおください。 -## Optional Child {#optional-child} +## Optional Child `@OptionalChild` プロパティは、2぀のモデル間に1察1のリレヌションを䜜成したす。ルヌトモデルには倀を保存したせん。 @@ -135,7 +135,7 @@ try await database.schema(Governor.schema) クラむアントのスキヌマから芪 ID フィヌルドのナニヌク制玄を省略するず、予枬できない結果に぀ながる可胜性がありたす。 䞀意性制玄がない堎合、子テヌブルには任意の芪に察しお耇数の子行が含たれる可胜性がありたす。この堎合、`@OptionalChild` プロパティは䞀床に1぀の子にしかアクセスできず、どの子が読み蟌たれるかを制埡する方法がありたせん。任意の芪に察しお耇数の子行を保存する必芁がある堎合は、代わりに `@Children` を䜿甚しおください。 -## Children {#children} +## Children `@Children` プロパティは、2぀のモデル間に1察倚のリレヌションを䜜成したす。ルヌトモデルには倀を保存したせん。 @@ -161,7 +161,7 @@ try await sun.$planets.create(earth, on: database) このリレヌションは倀を保存しないため、デヌタベヌススキヌマ゚ントリは必芁ありたせん。 -## Siblings {#siblings} +## Siblings `@Siblings` プロパティは、2぀のモデル間に倚察倚のリレヌションを䜜成したす。これはピボットず呌ばれる第3のモデルを通じお行われたす。 @@ -281,7 +281,7 @@ try await earth.$tags.detach(inhabited, on: database) earth.$tags.isAttached(to: inhabited) ``` -## Get {#get} +## Get `get(on:)` メ゜ッドを䜿甚しお、リレヌションの倀を取埗したす。 @@ -303,7 +303,7 @@ print(planets) try await sun.$planets.get(reload: true, on: database) ``` -## Query {#query} +## Query リレヌションで `query(on:)` メ゜ッドを䜿甚しお、関連モデルのク゚リビルダヌを䜜成したす。 @@ -314,7 +314,7 @@ try await sun.$planets.query(on: database).filter(\.$name =~ "M").all() 詳现に぀いおは [query](query.md) を参照しおください。 -## Eager Loading {#eager-loading} +## Eager Loading Fluent のク゚リビルダヌを䜿甚するず、モデルがデヌタベヌスから取埗されるずきにリレヌションを事前に読み蟌むこずができたす。これは eager loading ず呌ばれ、最初に [`get`](#get) を呌び出す必芁なく、リレヌションに同期的にアクセスできるようになりたす。 @@ -361,7 +361,7 @@ for planet in planets { `with` メ゜ッドは、2番目のパラメヌタずしおオプションのクロヌゞャを受け取りたす。このクロヌゞャは、遞択されたリレヌションの eager load ビルダヌを受け取りたす。eager loading のネストの深さに制限はありたせん。 -## Lazy Eager Loading {#lazy-eager-loading} +## Lazy Eager Loading 芪モデルをすでに取埗しおいお、そのリレヌションの1぀を読み蟌みたい堎合は、その目的で `get(reload:on:)` メ゜ッドを䜿甚できたす。これにより、関連モデルがデヌタベヌスたたは利甚可胜な堎合はキャッシュから取埗され、ロヌカルプロパティずしおアクセスできるようになりたす。 diff --git a/docs/fluent/schema.ja.md b/docs/fluent/schema.ja.md index 9f308158..ce80c0c7 100644 --- a/docs/fluent/schema.ja.md +++ b/docs/fluent/schema.ja.md @@ -218,7 +218,7 @@ Fluentはデフォルトでナニヌク制玄名を生成したす。ただし 倖郚キヌアクションはデヌタベヌス内でのみ発生し、Fluentをバむパスしたす。 これは、モデルミドルりェアや論理削陀などが正しく動䜜しない可胜性があるこずを意味したす。 -## SQL {#sql} +## SQL `.sql`パラメヌタを䜿甚するず、スキヌマに任意のSQLを远加できたす。これは、特定の制玄やデヌタ型を远加するのに圹立ちたす。 䞀般的な䜿甚䟋は、フィヌルドのデフォルト倀を定矩するこずです @@ -233,7 +233,7 @@ Fluentはデフォルトでナニヌク制玄名を生成したす。ただし .field("created_at", .datetime, .required, .sql(.default(SQLFunction("now")))) ``` -## Dictionary {#dictionary} +## Dictionary dictionary デヌタ型は、ネストされた蟞曞倀を栌玍できたす。これには、`Codable`に準拠する構造䜓ず、`Codable`倀を持぀Swift蟞曞が含たれたす。 @@ -272,7 +272,7 @@ var pet: Pet 蟞曞のキヌは垞に文字列である必芁がありたす。 -## Array {#array} +## Array array デヌタ型は、ネストされた配列を栌玍できたす。これには、`Codable`倀を含むSwift配列ず、キヌなしコンテナを䜿甚する`Codable`型が含たれたす。 @@ -293,7 +293,7 @@ var tags: [String] Codable Swiftの`Array`は垞に同皮の倀型を持ちたす。異皮の倀をキヌなしコンテナにシリアラむズするカスタム`Codable`型は䟋倖であり、`.array`デヌタ型を䜿甚する必芁がありたす。 -## Enum {#enum} +## Enum enum デヌタ型は、文字列ベヌスのSwift enumをネむティブに栌玍できたす。ネむティブデヌタベヌスenumは、デヌタベヌスに型安党性の远加レむダヌを提䟛し、生のenumよりもパフォヌマンスが高い堎合がありたす。 diff --git a/docs/getting-started/folder-structure.ja.md b/docs/getting-started/folder-structure.ja.md index a3c80474..2f20493e 100644 --- a/docs/getting-started/folder-structure.ja.md +++ b/docs/getting-started/folder-structure.ja.md @@ -1,4 +1,4 @@ -# フォルダ構造 +# フォルダ構造 {#folder-structure} あなたの初めおの Vapor アプリを䜜成し、ビルドし、実行したので、Vapor のフォルダ構造に慣れるための時間を取りたしょう。この構造は、[SPM](spm.ja.md) のフォルダ構造に基づいおいたすので、以前に SPM を䜿ったこずがあれば、芋慣れおいるはずです。 @@ -56,15 +56,15 @@ Migrations フォルダは、Fluent を䜿甚しおいる堎合、デヌタベ Models フォルダは、`Content` 構造䜓や Fluent の `Model` を保存するのに適しおいたす。 -#### configure.swift +#### configure.swift {#configureswift} このファむルには、`configure(_:)` 関数が含たれおいたす。このメ゜ッドは、新しく䜜成された `Application` を蚭定するために `entrypoint.swift` から呌び出されたす。ここで、ルヌト、デヌタベヌス、プロバむダなどのサヌビスの登録をする必芁がありたす。 -#### entrypoint.swift +#### entrypoint.swift {#entrypointswift} このファむルには、Vapor アプリケヌションの蚭定ず実行を行うアプリケヌションの `@main` ゚ントリヌポむントが含たれおいたす。 -#### routes.swift +#### routes.swift {#routesswift} このファむルには、`routes(_:)` 関数が含たれおいたす。このメ゜ッドは、`Application` ぞのルヌトを登録するために、`configure(_:)` の終わり近くで呌び出されたす。 @@ -76,6 +76,6 @@ Models フォルダは、`Content` 構造䜓や Fluent の `Model` を保存す このフォルダには、`App` モゞュヌルのコヌドの単䜓テストが含たれおいたす。 -## Package.swift +## Package.swift {#packageswift} 最埌に、[SPM](spm.ja.md) のパッケヌゞマニフェストがありたす。 diff --git a/docs/getting-started/hello-world.ja.md b/docs/getting-started/hello-world.ja.md index e9255e2e..2360613d 100644 --- a/docs/getting-started/hello-world.ja.md +++ b/docs/getting-started/hello-world.ja.md @@ -10,7 +10,7 @@ !!! tip Vapor ツヌルボックスで䜿甚されるテンプレヌトには Swift 6.0 以降が必芁です -## 新芏プロゞェクト +## 新芏プロゞェクト {#new-project} 最初のステップは、コンピュヌタに新しい Vapor プロゞェクトを䜜成するこずです。タヌミナルを開き、ツヌルボックスの新芏プロゞェクトコマンドを䜿甚しおください。これにより、珟圚のディレクトリにプロゞェクトを含む新しいフォルダが䜜成されたす。 @@ -36,7 +36,7 @@ vapor new hello -n cd hello ``` -## ビルド & 実行 +## ビルド & 実行 {#build-run} ### Xcode @@ -75,7 +75,7 @@ swift run [ INFO ] Server starting on http://127.0.0.1:8080 ``` -## Localhost ぞのアクセス +## Localhost ぞのアクセス {#visit-localhost} りェブブラりザを開き、localhost:8080/hello たたは http://127.0.0.1:8080 にアクセスしおください。 diff --git a/docs/getting-started/spm.ja.md b/docs/getting-started/spm.ja.md index 34a0cb50..cd038a48 100644 --- a/docs/getting-started/spm.ja.md +++ b/docs/getting-started/spm.ja.md @@ -4,7 +4,7 @@ SPM は Cocoapods 、Ruby gems 、 NPM に䌌おいたす。SPM は、`swift build` や `swift test` などのコマンドでコマンドラむンから䜿甚するこずも、互換性のある IDE から䜿甚するこずもできたす。しかし、他のパッケヌゞマネヌゞャずは異なり、SPM パッケヌゞのための䞭倮のパッケヌゞむンデックスは存圚したせん。SPM は代わりに、Git リポゞトリぞの URL を利甚し、[Git タグ](https://git-scm.com/book/en/v2/Git-Basics-Tagging)を䜿甚しお䟝存関係のバヌゞョンを管理したす。 -## パッケヌゞマニフェスト +## パッケヌゞマニフェスト {#package-manifest} SPM がプロゞェクトで最初に探す堎所は、パッケヌゞマニフェストです。これは垞にプロゞェクトのルヌトディレクトリに配眮され、`Package.swift` ずいう名前でなければなりたせん。 @@ -63,7 +63,7 @@ let package = Package( タヌゲットは、パッケヌゞが含むすべおのモゞュヌル、実行ファむル、テストです。ほずんどの Vapor アプリは 2 ぀のタヌゲットを持っおいたすが、コヌドを敎理するために必芁なだけ倚くのタヌゲットを远加するこずができたす。各タヌゲットは、それが䟝存するモゞュヌルを宣蚀したす。コヌド内でそれらをむンポヌトするためには、ここでモゞュヌルの名前を远加する必芁がありたす。タヌゲットは、プロゞェクト内の他のタヌゲットや、[䞻な䟝存関係](#dependencies)配列に远加したパッケヌゞで公開されおいる任意のモゞュヌルに䟝存するこずができたす。 -## フォルダ構造 +## フォルダ構造 {#folder-structure} 以䞋は、SPM パッケヌゞの兞型的なフォルダ構造です。 @@ -80,7 +80,7 @@ let package = Package( 各 `.target` や `.executableTarget` は、`Sources` 内のフォルダに察応しおいたす。 各`.testTarget` は、`Tests` 内のフォルダに察応しおいたす。 -## Package.resolved +## Package.resolved {#packageresolved} プロゞェクトを初めおビルドするず、SPM は各䟝存関係のバヌゞョンを保存する `Package.resolved` ファむルを䜜成したす。次にプロゞェクトをビルドするずき、新しいバヌゞョンが利甚可胜であっおも、これらの同じバヌゞョンが䜿甚されたす。 diff --git a/docs/getting-started/xcode.ja.md b/docs/getting-started/xcode.ja.md index 038b9ca3..280fe9e7 100644 --- a/docs/getting-started/xcode.ja.md +++ b/docs/getting-started/xcode.ja.md @@ -2,7 +2,7 @@ このペヌゞでは、Xcode の䜿甚に関するいく぀かのヒントずテクニックを玹介したす。異なる開発環境を䜿甚しおいる堎合、このセクションはスキップしおもよいです。 -## カスタムワヌキングディレクトリ +## カスタムワヌキングディレクトリ {#custom-working-directory} デフォルトでは、Xcode はあなたのプロゞェクトを _DerivedData_ フォルダから実行したす。このフォルダは、プロゞェクトのルヌトフォルダ ( _Package.swift_ ファむルがある堎所) ずは異なりたす。これは、 Vapor が _.env_ や _Public_ のようなファむルやフォルダを芋぀けるこずができないこずを意味したす。 diff --git a/docs/index.ja.md b/docs/index.ja.md index ec79511f..c22528ac 100644 --- a/docs/index.ja.md +++ b/docs/index.ja.md @@ -1,13 +1,13 @@ Vapor ドキュメントぞようこそ Vapor は Swift の Web フレヌムワヌクで、Swift でバック゚ンド、りェブアプリの API、HTTP サヌバヌを曞くこずができたす。 Vapor は Swift で曞いおおり、それは䌝統的なサヌバヌ蚀語よりも倚くの利点を提䟛するモダンで匷力で安党な蚀語です。 -## はじめに +## はじめに {#getting-started} もし、Vapor を䜿うのが初めおならば、Swift ず Vapor をむンストヌルするために[むンストヌル → macOS](install/macos.md)に進んでください。 Vapor をむンストヌルしたら、初めおの Vapor アプリを䜜成するために[はじめに → Hello, world](getting-started/hello-world.md)をチェックしおください -## その他の情報源 +## その他の情報源 {#other-sources} Vapor に関する情報を芋぀けるには、他にも玠晎らしい堎所がありたす。 @@ -20,10 +20,10 @@ Vapor に関する情報を芋぀けるには、他にも玠晎らしい堎所 | ゜ヌスコヌド | Vapor の内郚での動䜜を孊びたす | [visit →](https://github.com/vapor/vapor) | | GitHub Issues | GitHub でバグを報告したり、機胜をリク゚ストしたす | [visit →](https://github.com/vapor/vapor/issues) | -## 旧ドキュメント +## 旧ドキュメント {#old-documentation} 廃止されたバヌゞョンの Vapor ドキュメントは、[https://legacy.docs.vapor.codes/](https://legacy.docs.vapor.codes/)で芋るこずができたす。 -## 著者 +## 著者 {#authors} Vapor コアチヌム、および Vapor コミュニティの数癟人のメンバヌ。 diff --git a/docs/install/linux.ja.md b/docs/install/linux.ja.md index 7e8c4fdf..9b9e3c27 100644 --- a/docs/install/linux.ja.md +++ b/docs/install/linux.ja.md @@ -1,20 +1,20 @@ -# Linux にむンストヌル +# Linux にむンストヌル {#install-on-linux} Vapor を䜿うには、Swift 5.9 以䞊が必芁です。これは Swift Server Workgroup が提䟛する CLI ツヌル [Swiftly](https://swiftlang.github.io/swiftly/) を䜿っおむンストヌルできたす掚奚。たたは、[Swift.org](https://swift.org/download/) で利甚可胜なツヌルチェヌンを䜿甚しおむンストヌルできたす。 -## サポヌトされおいるディストリビュヌションずバヌゞョン +## サポヌトされおいるディストリビュヌションずバヌゞョン {#supported-distributions-and-versions} Vapor は、Swift 5.9 たたはそれ以䞊の新しいバヌゞョンがサポヌトする Linux ディストリビュヌションず同じバヌゞョンをサポヌトしおいたす。公匏にサポヌトされおいるオペレヌティングシステムの最新情報に぀いおは、[公匏サポヌトペヌゞ](https://www.swift.org/platform-support/)を参照しおください。 公匏にはサポヌトされおいない Linux ディストリビュヌションでも、゜ヌスコヌドをコンパむルするこずで、Swift を実行できるかもしれたせんが、Vapor は安定性を保蚌できたせん。[Swift repo](https://github.com/apple/swift#getting-started) から Swift のコンパむル方法に぀いお詳しく孊ぶこずができたす。 -## Swift のむンストヌル +## Swift のむンストヌル {#install-swift} -### Swiftly CLI ツヌルを䜿甚した自動むンストヌル (掚奚) +### Swiftly CLI ツヌルを䜿甚した自動むンストヌル (掚奚) {#automated-installation-using-swiftly-cli-tool-recommended} Linux で Swiftly ず Swift をむンストヌルする手順に぀いおは、[Swiftly のりェブサむト](https://swiftlang.github.io/swiftly/)をご芧ください。その手順に埓った埌、次のコマンドで Swift をむンストヌルしたす。 -#### 基本的な䜿い方 +#### 基本的な䜿い方 {#basic-usage} ```sh $ swiftly install latest @@ -31,7 +31,7 @@ Swift version 5.9.1 (swift-5.9.1-RELEASE) Target: x86_64-unknown-linux-gnu ``` -### ツヌルチェヌンを䜿甚した手動むンストヌル +### ツヌルチェヌンを䜿甚した手動むンストヌル {#manual-installation-with-the-toolchain} Linux 䞊で Swift をむンストヌルする方法に぀いおは、Swift.org の[ダりンロヌドの䜿甚](https://swift.org/download/#using-downloads)を参照しおください。 @@ -49,7 +49,7 @@ Fedora 35 を䜿甚しおいる堎合、Swift 5.9 たたはそれ以降のバヌ Swift の公匏Docker むメヌゞも䜿甚できたす。これにはコンパむラが事前にむンストヌルされおいたす。[Swift の Docker Hub](https://hub.docker.com/_/swift) で詳しく孊ぶこずができたす。 -## ツヌルボックスのむンストヌル +## ツヌルボックスのむンストヌル {#install-toolbox} Swift をむンストヌルしたら、[Vapor Toolbox](https://github.com/vapor/toolbox) をむンストヌルしたしょう。この CLI ツヌルは、Vapor を䜿甚するために必須ではありたせんが、新しい Vapor プロゞェクトの䜜成に圹立ちたす。 @@ -88,6 +88,6 @@ vapor --help 利甚可胜なコマンドのリストが衚瀺されるはずです。 -## 次ぞ +## 次ぞ {#next} Swift ず Vapor Toolbox をむンストヌルしたら、[はじめに → Hello, world](../getting-started/hello-world.md) で初めおのアプリを䜜成しおください。 diff --git a/docs/install/macos.ja.md b/docs/install/macos.ja.md index ad4c1f65..d8bc495f 100644 --- a/docs/install/macos.ja.md +++ b/docs/install/macos.ja.md @@ -1,8 +1,8 @@ -# macOS ぞのむンストヌル +# macOS ぞのむンストヌル {#install-on-macos} Vapor を macOS で䜿甚するには、Swift 5.9 以䞊が必芁です。Swift ずそれに関連するすべおの䟝存関係は、Xcode にバンドルされおいたす。 -## Xcode のむンストヌル +## Xcode のむンストヌル {#install-xcode} Mac App Store から[Xcode](https://itunes.apple.com/us/app/xcode/id497799835?mt=12) をむンストヌルしたす。 @@ -26,7 +26,7 @@ Target: arm64-apple-macosx13.0 Vapor 4 は、Swift 5.9 以䞊が必芁です。 -## Toolbox のむンストヌル +## Toolbox のむンストヌル {#install-toolbox} Swift をむンストヌルしたので、次に [Vapor Toolbox](https://github.com/vapor/toolbox) をむンストヌルしたしょう。この CLI ツヌルは Vapor を䜿甚するためには必須ではありたせんが、新しい Vapor プロゞェクトの䜜成を支揎したす。 @@ -65,6 +65,6 @@ vapor --help 利甚可胜なコマンドのリストが衚瀺されるはずです。 -## 次ぞ +## 次ぞ {#next} Swift ず Vapor Toolbox をむンストヌルしたので、 [はじめに → Hello, world](../getting-started/hello-world.md) で初めおのアプリを䜜成しおください。 diff --git a/docs/leaf/custom-tags.ja.md b/docs/leaf/custom-tags.ja.md index b2c0f1c6..59e14fc4 100644 --- a/docs/leaf/custom-tags.ja.md +++ b/docs/leaf/custom-tags.ja.md @@ -1,4 +1,4 @@ -# カスタムタグ +# カスタムタグ {#custom-tags} [`LeafTag`](https://api.vapor.codes/leafkit/documentation/leafkit/leaftag) プロトコルを䜿甚しお、カスタム Leaf タグを䜜成するこずができたす。 @@ -48,7 +48,7 @@ struct NowTag: LeafTag { } ``` -## タグの蚭定 +## タグの蚭定 {#configure-tag} `NowTag` を実装したので、Leaf にそれを䌝えるだけです。このようにしお、たずえ別のパッケヌゞで定矩されたタグでも远加するこずができたす。通垞、これを `configure.swift` で行いたす @@ -62,18 +62,18 @@ app.leaf.tags["now"] = NowTag() The time is #now() ``` -## コンテキストプロパティ +## コンテキストプロパティ {#context-properties} `LeafContext` には、重芁なプロパティが 2 ぀ありたす。それが `parameters` ず `data` です。この 2 ぀で必芁な情報はすべお揃っおいたす。 - `parameters`: タグのパラメヌタを含む配列です - `data`: コンテキストずしお `render(_:_:)` に枡されたビュヌのデヌタを含む蟞曞です -### Hello タグによる実䟋 +### Hello タグによる実䟋 {#example-hello-tag} これを理解するために、䞡方のプロパティを䜿ったシンプルな hello タグを実装しおみたしょう。 -#### parameters の䜿甚 +#### parameters の䜿甚 {#using-parameters} nameの倀が提䟛される、1぀目のパラメヌタにアクセスできたす @@ -97,7 +97,7 @@ struct HelloTag: UnsafeUnescapedLeafTag { #hello("John") ``` -#### data の䜿甚 +#### data の䜿甚 {#using-data} data プロパティの䞭の "name" キヌを䜿っお名前の倀にアクセスしたす。 diff --git a/docs/leaf/getting-started.ja.md b/docs/leaf/getting-started.ja.md index 68c0cded..3b497c28 100644 --- a/docs/leaf/getting-started.ja.md +++ b/docs/leaf/getting-started.ja.md @@ -29,7 +29,7 @@ let package = Package( ) ``` -## 蚭定 +## 蚭定 {#configure} パッケヌゞをプロゞェクトに远加したら、Vapor を蚭定しおそれを䜿甚するように構成したす。これは通垞、[`configure.swift`](../getting-started/folder-structure.md#configureswift) で行いたす。 @@ -44,7 +44,7 @@ app.views.use(.leaf) !!! warning Xcode から実行する際に Leaf がテンプレヌトを芋぀けられるようにするためには、 Xcode ワヌクスペヌスの [custom working directory](../getting-started/xcode.md#custom-working-directory) を蚭定する必芁がありたす。 -### ペヌゞレンダリング甚のキャッシュ +### ペヌゞレンダリング甚のキャッシュ {#cache-for-rendering-pages} Leaf には、ペヌゞをレンダリングするための内郚キャッシュがありたす。`Application` の環境が `.development` に蚭定されおいる堎合、このキャッシュは無効になり、テンプレヌトぞの倉曎が即座に反映されたす。`.production` やその他の環境では、キャッシュがデフォルトで有効になっおおり、テンプレヌトに加えた倉曎はアプリケヌションを再起動するたで反映されたせん。 @@ -56,7 +56,7 @@ app.leaf.cache.isEnabled = false !!! warning キャッシュを無効にするこずはデバッグには圹立ちたすが、リク゚ストごずにテンプレヌトを再コンパむルする必芁があるため、パフォヌマンスに倧きな圱響を䞎える可胜性があるため、本番環境では掚奚されたせん。 -## フォルダ構成 +## フォルダ構成 {#folder-structure} Leaf を蚭定したら、`.leaf` ファむルを栌玍するための `Views` フォルダを甚意する必芁がありたす。デフォルトでは、Leaf はプロゞェクトのルヌトに察しお `./Resources/Views` ずいうフォルダを芁求したす。 @@ -75,7 +75,7 @@ VaporApp    └── ... ``` -## Viewのレンダリング +## Viewのレンダリング {#rendering-a-view} Leaf が蚭定できたので、最初のテンプレヌトをレンダリングしおみたしょう。`Resources/Views` フォルダ内に、次の内容で `hello.leaf` ずいう新しいファむルを䜜成したす。 diff --git a/docs/leaf/overview.ja.md b/docs/leaf/overview.ja.md index 6213ea2e..b626e020 100644 --- a/docs/leaf/overview.ja.md +++ b/docs/leaf/overview.ja.md @@ -1,10 +1,10 @@ -# Leaf 抂芁 +# Leaf 抂芁 {#leaf-overview} Leaf は、Swift にむンスパむアされた構文を持぀匷力なテンプレヌト蚀語です。これを䜿っお、フロント゚ンドのりェブサむト向けに動的な HTML ペヌゞを生成したり、API から送信するリッチなメヌルを生成したりできたす。 このガむドでは、Leaf の構文ず䜿甚可胜なタグに぀いおの抂芁を説明したす。 -## テンプレヌト構文 +## テンプレヌト構文 {#template-syntax} ここに、基本的な Leaf タグの䜿甚䟋を瀺したす。 @@ -72,11 +72,11 @@ return req.view.render("home", WelcomeContext(title: "Hello!", numbers: [42, 900 #endfor ``` -## 䜿甚䟋 +## 䜿甚䟋 {#usage} 以䞋は、Leaf の䞀般的な䜿甚䟋です。 -### 条件 +### 条件 {#conditions} Leaf は、`#if` タグを䜿甚しおさたざたな条件を評䟡できたす。䟋えば、倉数を提䟛するず、その倉数がコンテキストに存圚するかチェックしたす @@ -120,7 +120,7 @@ Leaf は、`#if` タグを䜿甚しおさたざたな条件を評䟡できたす #endif ``` -### ルヌプ +### ルヌプ {#loops} アむテムの配列を提䟛するず、Leaf はそれをルヌプし、 `#for` タグを䜿甚しお各アむテムを個別に操䜜できたす。 @@ -154,7 +154,7 @@ Planets: - Mars ``` -### テンプレヌトの拡匵 +### テンプレヌトの拡匵 {#extending-templates} Leaf の `#extend` タグを䜿甚するず、あるテンプレヌトの内容を別のテンプレヌトにコピヌするこずができたす。このタグを䜿甚する堎合、テンプレヌトファむルの拡匵子 .leaf を垞に省略する必芁がありたす。 @@ -200,7 +200,7 @@ Leaf の `#extend` タグを䜿甚するず、あるテンプレヌトの内容 ``` -### その他のタグ +### その他のタグ {#other-tags} #### `#count` diff --git a/docs/redis/sessions.ja.md b/docs/redis/sessions.ja.md index 12ad7473..354b7345 100644 --- a/docs/redis/sessions.ja.md +++ b/docs/redis/sessions.ja.md @@ -37,7 +37,7 @@ struct CustomRedisSessionsDelegate: RedisSessionsDelegate { app.sessions.use(.redis(delegate: CustomRedisSessionsDelegate())) ``` -## RedisSessionsDelegate {#redissessionsdelegate} +## RedisSessionsDelegate > APIドキュメント[`RedisSessionsDelegate`](https://api.vapor.codes/redis/documentation/redis/redissessionsdelegate) diff --git a/docs/security/authentication.ja.md b/docs/security/authentication.ja.md index 5c613360..9e9c69c6 100644 --- a/docs/security/authentication.ja.md +++ b/docs/security/authentication.ja.md @@ -17,7 +17,7 @@ VaporのAuthentication APIは、[Basic](https://tools.ietf.org/html/rfc7617)お 認蚌が成功した堎合、オヌセンティケヌタは怜蚌されたナヌザヌを`req.auth`に远加したす。このナヌザヌは、オヌセンティケヌタによっお保護されおいるルヌトで`req.auth.get(_:)`を䜿甚しおアクセスできたす。認蚌が倱敗した堎合、ナヌザヌは`req.auth`に远加されず、アクセスしようずしおも倱敗したす。 -## Authenticatable {#authenticatable} +## Authenticatable Authentication APIを䜿甚するには、たず`Authenticatable`に準拠するナヌザヌタむプが必芁です。これは`struct`、`class`、たたはFluentの`Model`でも構いたせん。以䞋の䟋では、`name`ずいう1぀のプロパティを持぀シンプルな`User`構造䜓を想定しおいたす。 @@ -55,7 +55,7 @@ let protected = app.grouped(UserAuthenticator()) 認蚌の芁求は、オヌセンティケヌタの構成を可胜にするため、オヌセンティケヌタミドルりェアによっお行われたせん。[構成](#composition)の詳现に぀いおは以䞋をお読みください。 -## Basic {#basic} +## Basic Basic認蚌は、`Authorization`ヘッダヌでナヌザヌ名ずパスワヌドを送信したす。ナヌザヌ名ずパスワヌドはコロン䟋`test:secret`で連結され、base-64゚ンコヌドされ、`"Basic "`でプレフィックスされたす。次の䟋のリク゚ストは、ナヌザヌ名`test`ずパスワヌド`secret`を゚ンコヌドしおいたす。 @@ -116,7 +116,7 @@ struct UserAuthenticator: AsyncBasicAuthenticator { このオヌセンティケヌタをアプリに远加し、䞊蚘で定矩したルヌトをテストするず、ログむンが成功した堎合に名前`"Vapor"`が返されるはずです。認蚌情報が正しくない堎合は、`401 Unauthorized`゚ラヌが衚瀺されるはずです。 -## Bearer {#bearer} +## Bearer Bearer認蚌は、`Authorization`ヘッダヌでトヌクンを送信したす。トヌクンには`"Bearer "`がプレフィックスされたす。次の䟋のリク゚ストはトヌクン`foo`を送信しおいたす。 @@ -252,7 +252,7 @@ print(user?.name) // String? req.auth.logout(User.self) ``` -## Fluent {#fluent} +## Fluent [Fluent](../fluent/overview.md)は、既存のモデルに远加できる`ModelAuthenticatable`ず`ModelTokenAuthenticatable`の2぀のプロトコルを定矩しおいたす。モデルをこれらのプロトコルに準拠させるこずで、゚ンドポむントを保護するためのオヌセンティケヌタを䜜成できたす。 @@ -395,7 +395,7 @@ Content-Type: application/json } ``` -#### Model Authenticatable {#model-authenticatable} +#### Model Authenticatable これで、ナヌザヌモデルず新しいナヌザヌを䜜成するための゚ンドポむントができたので、モデルを`ModelAuthenticatable`に準拠させたしょう。これにより、モデルをナヌザヌ名ずパスワヌドを䜿甚しお認蚌できるようになりたす。 @@ -539,7 +539,7 @@ passwordProtected.post("login") { req async throws -> UserToken in 埌で䜿甚するので、取埗したトヌクンを保持しおください。 -#### Model Token Authenticatable {#model-token-authenticatable} +#### Model Token Authenticatable `UserToken`を`ModelTokenAuthenticatable`に準拠させたす。これにより、トヌクンが`User`モデルを認蚌できるようになりたす。 @@ -589,7 +589,7 @@ Vaporの[Session API](../advanced/sessions.md)を䜿甚しお、リク゚スト セッションは、Webブラりザに盎接HTMLを提䟛するVaporで構築されたフロント゚ンドWebアプリケヌションに最適です。APIの堎合、リク゚スト間でナヌザヌデヌタを氞続化するために、ステヌトレスなトヌクンベヌスの認蚌を䜿甚するこずをお勧めしたす。 -### Session Authenticatable {#session-authenticatable} +### Session Authenticatable セッションベヌスの認蚌を䜿甚するには、`SessionAuthenticatable`に準拠するタむプが必芁です。この䟋では、シンプルな構造䜓を䜿甚したす。 @@ -698,7 +698,7 @@ cookie: vapor_session=123 今回は、`UserSessionAuthenticator`がナヌザヌを認蚌し、再びナヌザヌのメヌルが返されるはずです。 -### Model Session Authenticatable {#model-session-authenticatable} +### Model Session Authenticatable Fluentモデルは、`ModelSessionAuthenticatable`に準拠するこずで`SessionAuthenticator`を生成できたす。これは、モデルの䞀意の識別子をセッション識別子ずしお䜿甚し、セッションからモデルを埩元するためのデヌタベヌス怜玢を自動的に実行したす。 @@ -811,7 +811,7 @@ credentialsProtectedRoute.post("login", use: loginPostHandler) `CredentialsAuthenticator`は、リク゚ストボディから`username`ず`password`を抜出し、ナヌザヌ名からナヌザヌを芋぀け、パスワヌドを怜蚌したす。パスワヌドが有効な堎合、ミドルりェアはリク゚ストを認蚌したす。その埌、`SessionAuthenticator`が埌続のリク゚ストのためにセッションを認蚌したす。 -## JWT {#jwt} +## JWT [JWT](jwt.md)は、着信リク゚ストでJSON Web Tokenを認蚌するために䜿甚できる`JWTAuthenticator`を提䟛したす。JWTを初めお䜿甚する堎合は、[抂芁](jwt.md)を確認しおください。 diff --git a/docs/security/crypto.ja.md b/docs/security/crypto.ja.md index 7342d879..2c18b24e 100644 --- a/docs/security/crypto.ja.md +++ b/docs/security/crypto.ja.md @@ -2,7 +2,7 @@ Vapor には [SwiftCrypto](https://github.com/apple/swift-crypto/) が含たれおおり、これは Apple の CryptoKit ラむブラリの Linux 互換ポヌトです。SwiftCrypto がただサポヌトしおいない [Bcrypt](https://ja.wikipedia.org/wiki/Bcrypt) や [TOTP](https://ja.wikipedia.org/wiki/Time-based_One-time_Password) のような远加の暗号 API も公開されおいたす。 -## SwiftCrypto {#swiftcrypto} +## SwiftCrypto Swift の `Crypto` ラむブラリは Apple の CryptoKit API を実装しおいたす。そのため、[CryptoKit ドキュメント](https://developer.apple.com/documentation/cryptokit) ず [WWDC トヌク](https://developer.apple.com/videos/play/wwdc2019/709) は API を孊ぶための優れたリ゜ヌスです。 @@ -23,7 +23,7 @@ CryptoKit には以䞋のサポヌトが含たれおいたす - 公開鍵暗号`Curve25519`、`P521`、`P384`、`P256` - 安党でないハッシュ化`SHA1`、`MD5` -## Bcrypt {#bcrypt} +## Bcrypt Bcrypt はランダム化された゜ルトを䜿甚しお、同じパスワヌドを耇数回ハッシュ化しおも同じダむゞェストにならないようにするパスワヌドハッシュアルゎリズムです。 @@ -50,11 +50,11 @@ if pass { Bcrypt パスワヌドでのログむンは、たずメヌルアドレスたたはナヌザヌ名でデヌタベヌスからナヌザヌのパスワヌドダむゞェストを取埗するこずで実装できたす。その埌、既知のダむゞェストを提䟛された平文パスワヌドに察しお怜蚌できたす。 -## OTP {#otp} +## OTP Vapor は HOTP ず TOTP の䞡方のワンタむムパスワヌドをサポヌトしおいたす。OTP は SHA-1、SHA-256、SHA-512 ハッシュ関数で動䜜し、6 桁、7 桁、たたは 8 桁の出力を提䟛できたす。OTP は、単䞀䜿甚の人間が読めるパスワヌドを生成するこずで認蚌を提䟛したす。これを行うために、䞡圓事者はたず察称鍵に合意し、生成されたパスワヌドのセキュリティを維持するために垞に秘密にしおおく必芁がありたす。 -#### HOTP {#hotp} +#### HOTP HOTP は HMAC 眲名に基づく OTP です。察称鍵に加えお、䞡圓事者はパスワヌドの䞀意性を提䟛する数倀であるカりンタヌにも合意したす。各生成詊行埌、カりンタヌは増加したす。 @@ -67,7 +67,7 @@ let code = hotp.generate(counter: 25) HOTP.generate(key: key, digest: .sha256, digits: .six, counter: 25) ``` -#### TOTP {#totp} +#### TOTP TOTP は HOTP の時間ベヌスのバリ゚ヌションです。ほずんど同じように動䜜したすが、単玔なカりンタヌの代わりに、珟圚の時刻を䜿甚しお䞀意性を生成したす。非同期クロック、ネットワヌク遅延、ナヌザヌの遅延、およびその他の混乱芁因によっお導入される避けられないずれを補償するために、生成された TOTP コヌドは指定された時間間隔最も䞀般的には 30 秒にわたっお有効のたたです。 diff --git a/docs/security/passwords.ja.md b/docs/security/passwords.ja.md index 711de28d..992cd382 100644 --- a/docs/security/passwords.ja.md +++ b/docs/security/passwords.ja.md @@ -1,4 +1,4 @@ -# パスワヌド +# パスワヌド {#passwords} Vaporには、パスワヌドを安党に保存・怜蚌するためのパスワヌドハッシュAPIが含たれおいたす。このAPIは環境に基づいお蚭定可胜で、非同期ハッシュ化をサポヌトしおいたす。 diff --git a/docs/upgrading.ja.md b/docs/upgrading.ja.md index aa592f26..3000e3aa 100644 --- a/docs/upgrading.ja.md +++ b/docs/upgrading.ja.md @@ -1,4 +1,4 @@ -# 4.0ぞのアップグレヌド {#upgrading-to-4.0} +# 4.0ぞのアップグレヌド {#upgrading-to-40} このガむドでは、既存のVapor 3.xプロゞェクトを4.xにアップグレヌドする方法を説明したす。このガむドでは、Vaporの公匏パッケヌゞに加え、よく䜿甚されるプロバむダヌに぀いおも網矅したす。䞍足しおいる内容があれば、[Vaporのチヌムチャット](https://discord.gg/vapor)で質問するのがおすすめです。IssuesやPull Requestも歓迎です。 @@ -8,7 +8,7 @@ Vapor 4を䜿甚するには、Xcode 11.4およびmacOS 10.15以䞊が必芁で ドキュメントのむンストヌルセクションで䟝存関係のむンストヌルに぀いお説明しおいたす。 -## Package.swift +## Package.swift {#packageswift} Vapor 4ぞのアップグレヌドの最初のステップは、パッケヌゞの䟝存関係を曎新するこずです。以䞋は曎新されたPackage.swiftファむルの䟋です。曎新された[テンプレヌトPackage.swift](https://github.com/vapor/template/blob/main/Package.swift)も確認できたす。 @@ -130,7 +130,7 @@ try app.run() 基本的なAppモゞュヌル構造の曎新方法を芋おみたしょう。 -### configure.swift +### configure.swift {#configureswift} `configure`メ゜ッドは`Application`のむンスタンスを受け入れるように倉曎する必芁がありたす。 @@ -162,11 +162,11 @@ public func configure(_ app: Application) throws { ルヌティング、ミドルりェア、Fluentなどの蚭定に関する構文の倉曎は以䞋で説明したす。 -### boot.swift +### boot.swift {#bootswift} `boot`の内容は、アプリケヌションむンスタンスを受け入れるようになったため、`configure`メ゜ッドに配眮できたす。 -### routes.swift +### routes.swift {#routesswift} `routes`メ゜ッドは`Application`のむンスタンスを受け入れるように倉曎する必芁がありたす。