Swift-URITemplate 0.1.2

Swift-URITemplate 0.1.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2014年12月
SPM支持 SPM

夏伟频 维护。



  • 夏伟频

** Xcode 6.0 Beta5 (6A279r) 需要 **

Swift-URITemplate 是 URI Template 的 Swift 实现 -- RFC6570,在该规范中可以扩展到第 4 级。

如果您不熟悉 URI Template,它是一个实用程序,可以用来用值扩展一个字符串,就像 printf 一样,但是用于 URL。例如,如果您给 Swift-URITemplate 一个字符串 http://www.example.com/foo{?query,number}(格式部分),和一个字典 {"query": "mycelium", "number": 100}(值部分),Swift-URITemplate 将返回一个扩展后的 URL http://www.example.com/foo?query=mycelium&number=100。更多信息见 RFC 6570,或者您可以查看 URITemplateRFCTests.json 中的测试。

Swift-URITemplate 最初是为 HTTP 库 Cycles 开发的。

安装

Swift-URITemplate 目前还没有打包成框架。您需要将 单个源文件 添加到您自己的项目中以使用 Swift-URITemplate。

扩展 URI 模板

为了扩展 URI 模板,您使用函数 ExpandURITemplate

public func ExpandURITemplate(template: String, values: AnyObject) -> String

参数 template 是要扩展的模板。参数 values 是一个对象,在函数扩展模板时提供值。

  • values 可以是一个 Swift 字典
var URLString = ExpandURITemplate("http://www.example.com/foo{?query,number}",
                                  ["query": "mycelium", "number": "100"])
println("\(URLString)") // http://www.example.com/foo?query=mycelium&number=100
  • 或者一个 NSDictionary
var URLString = ExpandURITemplate("http://www.example.com/foo{?query,number}",
                                  NSDictionary(objects: ["mycelium", "100"], forKeys: ["query", "number"]))
println("\(URLString)") // http://www.example.com/foo?query=mycelium&number=100
  • 或者任何有 objectForKey 方法的对象。

值类型

  • values 提供的对象可以是字符串
var URLString = ExpandURITemplate("http://www.example.com/foo{?query,number}",
                                  NSDictionary(objects: ["mycelium", "100"], forKeys: ["query", "number"]))
println("\(URLString)") // http://www.example.com/foo?query=mycelium&number=100
  • 或者是数字(如下代码片段中 mycelium 键的值)
var URLString = ExpandURITemplate("http://www.example.com/foo{?query,number}",
                                  NSDictionary(objects: ["mycelium", 100], forKeys: ["query", "number"]))
println("\(URLString)") // http://www.example.com/foo?query=mycelium&number=100
  • 或者任何有 stringValue 方法的对象。

支持

请使用 问题系统。我们期待听到您对项目的看法。

许可证

Swift-URITemplate 在 MIT 许可证下发布。见 LICENSE.md