快速创建符合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
基本功能已支持,但仍有许多功能尚未实现。例如日期支持和筛选条件的额外操作符