ODataSwift 1.0.1

ODataSwift 1.0.1

Celusion Developer 维护。



ODataSwift

ODataSwift是一个简单的Swift包装工具,用于生成OData Query V4,适用于iOS和OS X。这使得使用ODataSwift构建模式API变得非常简单,并且在Swift中使用起来更加方便

💡特性

  • 使用构建模式生成查询
  • 支持 $select, $expand, $filter
  • 支持类似于 $top, $skip 的 odata 分页
  • 支持未绑定和绑定函数
  • 支持几乎所有的谓词,如 eq, lt, gt
  • 支持日期时间函数,如 now()

📖使用方法

🔑基本

设置OData URL

ODataQueryBuilder.configure(url: "https://services.odata.org/V4")

🔑查询数据

$filter

$filter 系统查询选项允许客户端通过请求URL过滤资源集合

let filter = FilterExp("FirstName").eq().value("Scott").and([FilterExp("FirstName").eq().value("Scott")])
print(ODataQueryBuilder().entity("People").filter(filter).build())

$orderby

$orderby 系统查询选项允许客户端请求资源,通过使用 asc 请求升序,使用 desc 请求降序

let order = Order("EndsAt", orderType: .desc)
print(ODataQueryBuilder().entity("People").order(order).build())

顶部

系统查询选项 $top 请求将查询集合中的项目数量包含在结果中

print(ODataQueryBuilder().entity("People").top(2).build())

跳过

系统查询选项 $skip 请求要跳过和不在结果中包含的查询集合中的项目数量

print(ODataQueryBuilder().entity("People").skip(18).build())

计数

系统查询选项 $count 允许客户端请求在响应中包含的匹配资源计数值,这取决于 OData 请求中的三种情况:.onlyCount().withCount()inlineCount(property)

print(ODataQueryBuilder().entity("People").withCount().build())

扩展

系统查询选项 $expand 指定要在检索的资源旁边包括相关资源,类似于 $select$filter 等系统查询选项

let filter = FilterExp("FirstName").eq().value("Scott").and([FilterExp("FirstName").eq().value("Scott")])
let expand = Expand("Trips").filter(filter)
print(ODataQueryBuilder().entity("People").expand(expand).build())

选择

系统查询选项 $select 允许客户端请求每个实体的有限属性集

print(ODataQueryBuilder().entity("Airports").selects(["Name","IcaoCode"]).build())

搜索

系统查询选项 `$search` 可将查询结果限制为仅包含满足指定搜索表达式的那些实体

print(ODataQueryBuilder().entity("People").search(Search("Name")).build())

通过 OData 函数生成高级查询

let url = ODataQueryBuilder().entity("People").filter(FilterExp(PropertyFunc("name", .length)).eq().value(30)).build()
print(url)
let url = ODataQueryBuilder().entity("People").filter(FilterExp(PropertyFunc("designation", .substring).value(1)).eq().value("di")).build()
print(url)
let url = ODataQueryBuilder().entity("People").filter(FilterExp(PropertyFunc("CreatedOn", .year)).eq().value(2020)).build()
print(url)

URL 编码

使用默认的 .encode() 方法来获取 OData URL 的字符串表示,用于网络调用

let urlEncoded = ODataQueryBuilder().entity("People").search(Search("Name")).encode()
print(urlEncoded)

需求

v1.0.0 该库是以 Swift 5 编写的,并支持 iOS、macOS、watchOS、tvOS

Pods

ODataSwift 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中:

use_frameworks!
pod 'ODataSwift'

Swift 包管理器

ODataSwift 同样也通过 Swift Package Manager 可用。

Xcode

选择 文件 > Swift 包 > 添加依赖...
添加 https://github.com/developer-celusion/ODataSwift.git

CLI

首先,创建包含以下内容的 Package.swift

// swift-tools-version:5.0
import PackageDescription

let package = Package(
    name: "MyLibrary",
    products: [
        .library(name: "MyLibrary", targets: ["MyLibrary"]),
    ],
    dependencies: [
        .package(url: "https://github.com/developer-celusion/ODataSwift.git", from: "1.0.0"),
    ],
    targets: [
        .target(name: "MyLibrary", dependencies: ["ODataSwift"]),
    ]
)

然后,输入

$ swift build

手动添加到您的项目

  1. Lib/ODataSwift.xcodeproj 添加到您的项目中
  2. ODataSwift.framework 与您的目标链接
  3. 添加 Copy Files Build Phase 以将框架包含到您的应用程序包中

参考 iOS 示例项目

作者

Swapnil Nandgave, [email protected]

许可证

ODataSwift 使用 MIT 许可证。查看 LICENSE 文件以获取更多信息。