OData-Query 0.0.1

OData-Query 0.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2015年6月

Ewan Thomas维护。



  • Ewan Thomas

OData Query

快速创建符合OData规范的字符串。

例子

创建一个简单的列表查询

NSString *listString = [NSString listStringWithBuilderBlock:^(ODataListStringBuilder *builderBlock) {
builderBlock.name = @"staff";
}];

NSString *queryString = [NSString queryStringWithBuilderBlock:^(ODataQueryStringBuilder *builderBlock) {
builderBlock.protocol = @"http";
builderBlock.server = @"server";
builderBlock.siteURL = @"siteurl";
builderBlock.list = listString;
}];

http://server/siteurl/_vti_bin/ListData.svc/staff  

创建一个选择查询

NSString *listString = [NSString listStringWithBuilderBlock:^(ODataListStringBuilder *builderBlock) {
builderBlock.name = @"staff";
builderBlock.identifier = @"1";
builderBlock.property = @"name";
}];

NSString *queryString = [NSString queryStringWithBuilderBlock:^(ODataQueryStringBuilder *builderBlock) {
builderBlock.protocol = @"http";
builderBlock.server = @"server";
builderBlock.siteURL = @"siteurl";
builderBlock.list = listString;
builderBlock.select = @[@"name", @"surname", @"age"];
}];

http://server/siteurl/_vti_bin/ListData.svc/staff(1)/name?$select=name,surname,age

创建一个筛选查询

NSString *listString = [NSString listStringWithBuilderBlock:^(ODataListStringBuilder *builderBlock) {
builderBlock.name = @"staff";
builderBlock.identifier = @"1";
builderBlock.property = @"name";
}];

NSString *filterItemNameString = [NSString filterItemStringWithBuilderBlock:^(ODataFilterItemStringBuilder *builderBlock) {
builderBlock.name = @"name";
builderBlock.comparisonOperator = @"eq";
builderBlock.value = @"John";
}];

NSString *filterItemAgeString = [NSString filterItemStringWithBuilderBlock:^(ODataFilterItemStringBuilder *builderBlock) {
builderBlock.name = @"age";
builderBlock.comparisonOperator = @"gt";
builderBlock.value = @"21";
}];

NSString *filterItemSalaryString = [NSString filterItemStringWithBuilderBlock:^(ODataFilterItemStringBuilder *builderBlock) {
builderBlock.name = @"salary";
builderBlock.comparisonOperator = @"lt";
builderBlock.value = @"50,000";
}];

NSString *filterItemRegionString = [NSString filterItemStringWithBuilderBlock:^(ODataFilterItemStringBuilder *builderBlock) {
builderBlock.name = @"region";
builderBlock.comparisonOperator = @"eq";
builderBlock.value = @"Asia";
}];

NSString *filterString = [NSString filterStringWithBuilderBlock:^(ODataFilterStringBuilder *builderBlock) {
builderBlock.items = @[filterItemNameString, filterItemAgeString, filterItemSalaryString, filterItemRegionString];
}];

NSString *queryString = [NSString queryStringWithBuilderBlock:^(ODataQueryStringBuilder *builderBlock) {
builderBlock.protocol = @"http";
builderBlock.server = @"server";
builderBlock.siteURL = @"siteurl";
builderBlock.list = listString;
builderBlock.filter = filterString;
builderBlock.select = @[@"name", @"surname", @"age"];
}];


http://server/siteurl/_vti_bin/ListData.svc/staff(1)/name?$select=name,surname,age&$filter=name%20eq%20%27John%27%20and%20age%20gt%20%2721%27%20and%20salary%20lt%20%2750,000%27%20and%20region%20eq%20%27Asia%27   

待办事项

基本功能已支持,但仍有许多功能尚未实现。例如日期支持和筛选条件的额外操作符