swift - 解析基于 URL 路径的 Rest API

标签 swift url

我正在使用 REST API 创建一个客户端应用程序。这个使用 URL 路径格式,即 /api/subPath/{variable}/otherSubPath

我知道苹果提供了一个 URLComponents 类,但似乎只适用于 URL-query-argument/api/path?param=value

我想创建一个类 URLBuilder 来动态地为我提供不同的 API url。目前,我最终得到了一个如下所示的类:

class URLBuilder {
  fileprivate static let base = "https://theAPI.com/"
  fileprivate static let objectsPath = kBase + "objects/"

  static func informationOfObject(withID id: Int) {
    return objectsPath + "\(id)/" + "information/"
  }

  // Many other functions like this
}

所以我想知道如何获得更优雅的东西(如果可能的话),并且可能将 URL 路径格式与 URLComponents 一起使用。 或者也许我应该使用正则表达式?我从未使用过它,但也许它在这里很有用。

最佳答案

您是否考虑过使用 URL 中的 append... 系列函数?

如果我了解您的要求,您可以执行以下操作:

let baseURL = URL(string: "/api/subPath")!
let variableURL = baseURL.appendingPathComponent("variable")
let trailingURL = variableURL.appendingPathComponent("otherSubPath")
print(trailingURL.absoluteString)

输出:api/subPath/variable/otherSubPath

如果您需要将其放在一行上,您甚至可以将appending 调用链接在一起。

关于swift - 解析基于 URL 路径的 Rest API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46698565/

相关文章:

swift - didBeginContact 无法正常工作

iOS : How to align labels like whatsapp chat message label and time label?

java - 无法获取 UTF-8 形式的 URL 内容

linux - 将当前的 firefox/chrome URL 存储在文件中

url - DOMParser 中的可选 baseURI(位置)?

bash - bash 的 URL 404 检查器

iOS CoreML mlmodel文件自动生成swift版模型类文件

ios - 无法摆脱致命异常 : NSInternalInconsistencyException Error

Swift SpriteKit Sprite 移动但保留原始位置

asp.net - 使用 JQuery 替换 ASP.NET 中的部分图像 url