代表者 0.8.0

Representor 0.8.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布上次发布2017年6月
SwiftSwift版本3.0
SPM支持SPM

Kyle FullerZdeněk Němec维护。



Swift中的Representor

用于构建和消费超媒体消息的Swift库。有关详细信息,请参见超媒体项目宪章

安装

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

您可以使用NSHTTPURLResponse和主体(NSData)初始化一个代表者。它将使用响应中的内容类型,并将主体负载反序列化为格式。对于不支持/未知类型,将返回nil。

let representor = HTTPDeserialization.deserialize(response, body: body)

您可以注册您自己的或覆盖现有HTTP反序列化器以用于特定内容类型。

HTTPDeserialization.deserializers["application/json"] = { response, body in
  return Representor(...)
}
支持的媒体类型
  • HAL JSON(application/hal+json)
  • Siren JSON(application/vnd.siren+json)

HAL

您可以使用以下方式明确地将HAL表示转换为和从之。

let representor = deserializeHAL(representation)
let representation = serializeHAL(representor)

告警

可以使用以下方式将数据转换为告警表示形式以及进行反转换。

let representor = deserializeSiren(representation)
let representation = serializeSiren(representor)

许可

Representor 在MIT许可下发布。请参阅LICENSE