English | 日本語
アプリケーションコードにウェブフレームワークの名前を出さずに HTTP サーバーを書く。
- シグネチャにフレームワークが出ない — Vapor は内部で import され公開 API に現れないので、アプリ側は Vapor 無しでビルドもテストもできる
- コントラクト駆動のルーティング —
APIServiceをマウントすれば、入力のデコードと認証チェックまでコントラクトから決まり、エンドポイントは一括登録される - ハンドラーはレスポンスではなく値を返す —
Encodableの戻り値が ISO 8601 の日付で JSON エンコードされる - CORS・認証・エラーのミドルウェア — 標準で入っていて、自作のものも足せる
- Server-Sent Events と Webhook —
AsyncSequenceをそのまま流す。Webhook はヘッダーと生バイトを受け取れる - strict concurrency 対応 — 公開型はすべて
Sendable
import APIServer
let server = try await Server.create()
server.get("health") {
["status": "healthy"]
}
server.use(CORSServerMiddleware())
server.useErrorMiddleware()
try await server.run()API リファレンスとガイド — 入門・ミドルウェア・認証・抽象化の設計まで。
Package.swift に追加する:
dependencies: [
.package(url: "https://github.com/no-problem-dev/swift-api-server.git", from: "3.0.0")
]ターゲットにプロダクトを足す:
.target(
name: "YourTarget",
dependencies: [
.product(name: "APIServer", package: "swift-api-server")
]
)| APIServer | Swift | プラットフォーム |
|---|---|---|
| 2.x | 6.0+ | macOS 14+ · Linux |
MIT。LICENSE を参照。