LSDrupalSDK 0.1.0

LSDrupalSDK 0.1.0

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2014年12月

mac 维护。



  • 作者
  • Oleg Stasula

Drupal8 iOS SDK

介绍

Drupal8 iOS SDK 是一个用于原生 iOS 应用与 Drupal 网络服务器通信的库。

当前库使用 AFNetworking 与服务器通信。

该库的主要目的是使得与基于 Drupal 8 的服务器通讯尽可能的简单和直观。


主要功能

1. 请求绑定到实体

您可以直接调用

- [DrupalEntity pushToServer]       //to post data to server.
- [DrupalEntity pullFromServer]     //to pull data from server.
- [DrupalEntity deleteFromServer]   //to remove data from server.
- [DrupalEntity patchServerData]    //to patch  patch data to server.

2. 响应不仅绑定到实体

除了实体 API 提供了一些更实用的结构:NSArray / NSDictionary 可以管理 Drupal 和非 Drupal 实体,并提供所有 DrupalEntity 方法,如 post,push,pull,delete。

3. 对象序列化/反序列化

库会自动序列化/反序列化对象,包括附件对象和对象数组。因为 Objective-C 不支持强类型数组,所以您必须实现方法:- (Class)classOfItems:(NSString *)propertyName 并返回数组中对象的类。

4. 其他细节

ResponseData

DrupalEntity 对象或对象数组(取决于响应)。

DrupalAPIManager

包含服务器基本 URL 的对象,并且负责生成和发送服务器请求。您需要在使用 DrupalEntity 实例进行操作之前设置 DrupalAPIManager.baseURL

AFHTTPRequestOperationManager+DrupalLib.h

类别扩展了 AFNetworking 的管理器,并用于 DrupalAPIManager。将会改进和扩展以支持登录方案。

瞬态字段

如果字段不应该序列化或反序列化,则重写方法 - (BOOL)isPropertyTransient:(NSString *)propertyName 并为所需属性名称返回 YES。

5. 代码示例

1. 实现DrupalEntity

要实现Drupal实体,只需扩展DrupalEntity并实现以下方法:

path

此方法将返回服务器的实体相对路径。

- (NSString *)path {
    return [NSString stringWithFormat:@"node/%@", self.nid]
;}
requestGETParams

如果需要,此方法将返回项目获取参数。

- (NSDictionary *)requestGETParams {
    return @{@"page": self.page};
}

2. 设置服务器URL

[DrupalAPIManager sharedDrupalAPIManager].baseURL = [NSURL URLWithString:@"http://myserver.com"];

3. 实例化DrupalEntity

BlogPage *bp = [BlogPage new];
bp.page = @(page);
[bp pullFromServer:nil];

用法

要运行示例项目;克隆仓库,并首先从示例目录中运行pod install

需求

安装

许可证

LSDrupalSDK在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。