此项目围绕 Strapi API 构建了一个绑定,旨在简化 Swift 项目和 Strapi 后端之间的通信;并尝试消除编写任何 URLSession
代码的需要。
Swift 5.8, XCTest, Swift DocC, Mocker (仅用于测试套件)
Swift DocC 生成的文档托管在 GitHub Pages 上。 我已尝试在通篇提供相当详细的文档注释以及以下示例,这应该足以让您启动并运行。
将 StrapiSwiftCross
库添加到您的 Package.swift
文件中,就像添加任何其他库一样。 目前不支持 CocoaPods 或 Carthage,如果您需要此功能,请随时打开 pull request!
// swift-tools-version:5.8
import PackageDescription
let package = Package(
name: "Example",
products: [
.library(name: "Example", targets: ["Example"]),
],
dependencies: [
.package(url: "https://github.com/lorenalexm/StrapiSwiftCross.git", from: "0.1.0")
],
targets: [
.target(
name: "Example",
dependencies: ["StrapiSwiftCross"]),
.testTarget(
name: "ExampleTests",
dependencies: ["Example"]),
]
)
从 Strapi 查询 posts
资源的基本示例。
import StrapiSwiftCross
let strapi = Strapi(host: "https://:1337/api")
let request = QueryRequest("posts")
let result = try? await strapi.execute(request)
print(result)
从 Strapi 查询和过滤 posts
示例资源的示例。
import StrapiSwiftCross
let strapi = Strapi(host: "https://:1337/api")
let request = QueryRequest("posts")
request.addFilter(type: .greaterThan, onField: "viewCount", forValue: 500)
let result = try? await strapi.execute(request)
print(result)
从 Strapi 查询、过滤和排序 posts
示例资源的示例。
import StrapiSwiftCross
let strapi = Strapi(host: "https://:1337/api")
let request = QueryRequest("posts")
request.addFilter(type: .greaterThan, onField: "viewCount", forValue: 500)
request.sort(field: "slug", byDirection: .descending)
request.limit(to: 3)
let result = try? await strapi.execute(request)
print(result)
以上所有示例都展示了如何从 Strapi 主机检索 JSON 字符串作为结果。 还有一个实用方法可以使 JSONDecoder
自动在响应上运行,从而返回 T
对象。
该示例假设您在某处定义了一个模型结构 PostsQueryResponse
。 鉴于 Strapi 的自定义功能,此示例中省略了模型定义。
import StrapiSwiftCross
let strapi = Strapi(host: "https://:1337/api")
let request = QueryRequest("posts")
let result: PostsQueryResponse = try? await strapi.executeAndDecode(request)
print(result)
要运行测试套件,请运行以下命令
swift test