为 apple/swift-http-types
提供的 HTMX 扩展。
该包提供了以下扩展:
HTTPField.Name
初始化器,例如: HTTPField.Name.hxLocation
= 'HX-Location'
HTTPField
初始化器,例如: HTTPField.hxLocation('/path')
= HX-Location: /path
HTTPFields
getter,例如: HTTPFields.hxRequest: Bool
, HTTPFields.hxLocation: String?
它还在代码中提供了 HTMX 文档
import HTTPTypes
import HTTPTypesHtmx
// Creating HTTPFields
let headersViaArray = HTTPFields([
.hxRetarget("#myDiv"),
.hxReswap(.outerHTML),
])
let headersViaDictionary: HTTPFields = [
.hxRetarget: "#myDiv",
.hxReswap: HxSwap.outerHTML,
]
// Getting values from HTTPFields
let exampleRequestHeaders = HTTPFields([
.hxBoosted(),
.hxRequest(),
.hxTarget(id: "myDiv")
])
requestHeaders.hxBoosted // true
requestHeaders.hxRequest // true
requestHeaders.hxTarget // "myDiv"
有一个使用 Hummingbird 框架 的服务器的 示例项目,其中包含一些关于如何使用 HTMX 响应头来驱动应用程序的示例。
所有处理程序都有测试,演示了如何使用此库来模拟 HTMX 请求以进行测试。
将依赖项添加到 Package.swift
dependencies: [
.package(url: "https://github.com/alephao/swift-http-types-htmx.git", from: "0.3.0")
],
将要使用的 products 添加到目标依赖项
.target(
name: "MyTarget",
dependencies: [
.product(name: "HTTPTypesHtmx", package: "swift-htmx"),
]
)