用于构建和消费超媒体消息的Swift库。有关详细信息,请参见超媒体项目宪章。
Representor可以通过在您的Package.swift
中将Representor作为依赖项添加到Swift包管理器中进行安装。
.Package(url: "https://github.com/the-hypermedia-project/representor-swift.git", majorVersion: 0, minor: 7)
或者,您可以通过git克隆Representor或将它作为子模块,然后在您的项目中包含Representor.xcodeproj,并将Representor.framework作为目标依赖项添加。
import Representor
let representor = Representor<HTTPTransition> { builder in
builder.addTransition("self", uri:"/notes/2/")
builder.addTransition("previous", uri:"/notes/1/")
builder.addTransition("next", uri:"/notes/3/")
builder.addMetaData("title", "Customer Details")
builder.addTransition("create", uri:"/notes/") { transitionBuilder in
transitionBuilder.method = "POST"
transitionBuilder.addAttribute("title")
transitionBuilder.addAttribute("note")
}
}
if let create = representor.transitions["create"] {
print("You can create with the URI: \(create.uri).")
}
if let next = representor.transitions["next"] {
print("The next representor can be found at: \(next).")
}
if let prev = representor.transitions["previous"] {
print("The previous representor can be found at: \(prev).")
}
代表者包含了将其他超媒体类型之间进行转换的适配器。
您可以使用NSHTTPURLResponse
和主体(NSData
)初始化一个代表者。它将使用响应中的内容类型,并将主体负载反序列化为格式。对于不支持/未知类型,将返回nil。
let representor = HTTPDeserialization.deserialize(response, body: body)
您可以注册您自己的或覆盖现有HTTP反序列化器以用于特定内容类型。
HTTPDeserialization.deserializers["application/json"] = { response, body in
return Representor(...)
}
您可以使用以下方式明确地将HAL表示转换为和从之。
let representor = deserializeHAL(representation)
let representation = serializeHAL(representor)
可以使用以下方式将数据转换为告警表示形式以及进行反转换。
let representor = deserializeSiren(representation)
let representation = serializeSiren(representor)
Representor 在MIT许可下发布。请参阅LICENSE。