SHMKit_Applicaster 0.3.0

SHMKit_Applicaster 0.3.0

测试测试
Lang语言 Obj-CObjective C
许可 MIT
Released最新发布2018年5月

Anton Kononenko 维护。



  • 作者:
  • Matt Dobson

Siren Objective-C 解析器

构建状态

SHMKit 是适用于 iOS 的 Siren 超媒体库。它将使您能够轻松地执行操作和导航 Siren API。

入门指南

只需将 SHMKit 项目拖放到您的 iOS 项目中。我最终会创建一个更整洁的库。

参考

SHMParser

这代表 API 入口点。在这里,您将使用根 URL 初始化解析器对象,并相应地遍历 API。

方法

初始化 siren 根。端点参数应该是您 API 的入口点。最好将其放置在 App Delegate 中。

-(id) initWithSirenRoot:(NSString*)endpoint;

异步检索您的 API 的根。传递一个块以获取您的 API 的第一个实体。

-(void) retrieveRoot:(void (^)(NSError *err, SHMEntity* entity))block;

SHMEntity

表示 Siren 实体。

方法

使用 NSData 类初始化一个新的 Siren 实体。这对于直接向 API 发送 HTTP 请求的情况非常适合。

-(id) initWithData:(NSData *)data;

使用字典初始化 Siren 实体。如果您想自行解析,或在使用 NSDictionary 构造 Siren 实体,请使用此方法。

-(id) initWithDictionary:(NSDictionary *)json;

异步步骤以链接关系匹配当前实体。如果没有提供的链接关系,则作为块的第一个参数返回错误。

-(void) stepToLinkRel:(NSString *)linkRel withCompletion:(void (^)(NSError *error, SHMEntity *entity))block;

从实体中获取特定的 Siren 动作。如果没有与特定名称相关联的动作,则返回 nil。

-(SHMAction *) getSirenAction:(NSString *)name;

SHMLink

表示一个Siren链接关系。

方法

使用字典初始化一个链接关系对象。这是为了对Siren实体进行后解析。内部使用。

-(id)initWithDictionary:(NSDictionary*)data;

SHMAction

表示一个Siren动作。

方法

使用字典初始化一个动作对象。这是为了对Siren实体进行后解析。内部使用。

-(id)initWithDictionary:(NSDictionary *)data;

执行带有特定参数的动作。如果没有传入参数,传递nil。动作异步执行,因此需要阻塞以获取API的下一步。

-(void)performActionWithFields:(NSDictionary *)fields andCompletion:(void (^)(NSError *, SHMEntity *))block;

不使用参数执行动作。动作异步执行,因此需要阻塞以获取API的下一步。

-(void)performActionWithCompletion:(void (^)(NSError *, SHMEntity *))block;

SHMActionField

表示Siren动作中的单个字段。

SHMConstants

仅内部使用的常量。

SHMUrlHelper

仅内部使用的帮助类。

SHMHTTPHelper

仅内部使用的帮助类。

测试

测试是用XCTest框架编写的。简单地下载后打开项目的测试标签并运行测试。它们目前都通过了。

贡献

  1. 分支
  2. 创建一个新的分支
  3. 编写你的代码
  4. 发起一个Pull Request

路线图

  1. 在某些地方错误被静默忽略。需要添加更好的错误处理支持。
  2. 将代理模式添加到库中。它仅使用块。
  3. 添加使用库的示例。

许可

版权所有 2014 年 Matthew Dobson 等贡献者

任何人免费获得本软件和相关的文档文件(“软件”)的副本(以下简称“软件”),均可不受限制地在软件中进行处理,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向软件提供的人士以任何方式使用此类软件,受以下条件约束:

上述版权声明和本许可声明应包含在软件的所有副本或大部分副本中。

软件按“现状”提供,无论明示或暗示,不包括任何形式的保证,包括但不限于适销性、针对特定目的的适应性以及不侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是由于合同、侵权或其他方式引起的,与软件或软件的使用或其他交易有关。