sequencing-app-chains-api-objc 1.1.2

sequencing-app-chains-api-objc 1.1.2

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2017年3月

Bogdan LaukhinAlex Moskvin维护。



  • 排序

CocoaPod-iOS-App-Chains-ObjectiveC

App Chains是轻松将实时个性化(RTP)编码到您的应用程序中的简单方法。使用此CocoaPod插件轻松添加App-Chains功能,用于Objective C iOS应用程序

内容

  • 简介
  • 示例(使用RTP的应用程序)
  • CocoaPod集成
  • 配置
  • 故障排除
  • 资源
  • 维护者
  • 贡献

简介

搜索并查找应用程序链 -> https://sequencing.com/app-chains/

应用程序链是将API调用与应用程序用户的基因分析相结合的集成。每个应用程序链都提供有关特定特征、状况、疾病、补充剂或药物的信息。应用程序链用于向应用程序用户提供基因定制的内容,从而在基因级别立即实现用户体验的个性化。这被称为实时个性化(RTP)

每个应用程序链包括

  1. API调用
    • 触发在Sequencing.com托管的应用程序对您的应用程序用户基因执行基因分析的API调用
  2. API响应
    • 直接、易于使用的结果作为API响应发送到您的应用程序
  3. 个性化
    • 您的应用程序使用这些信息(这些信息直接从您的应用程序用户基因以实时获取),以创建真正的个性化用户体验

每个应用程序链由以下内容组成

  • 一个到Sequencing.com的jonen请求数据
    • 该请求使用OAuth2进行保护
  • 分析应用程序用户的基因
    • 每个应用程序链分析特定的特征或状况
    • 有数千个应用程序链可供选择
    • 所有的分析都在Sequencing.com实时进行
  • 对您应用程序的API响应
    • 响应提供的信息允许您的应用程序根据用户的基因定制自己。
    • 每个应用程序链的文档提供了一组所有可能的API响应。大多数应用程序链的响应简单地为“是”或“否”。

示例

  • 应用程序链:对于此人的健康来说,在晴天或甚至部分晴朗的时候,涂抹SPF +30的防晒霜非常重要。
  • 可能的响应:是,否,数据不足,错误

尽管已经有了用于个性化大多数应用程序的应用程序链,但如果您需要但没有看到应用程序链,请告诉我们!(例如,通过电子邮件:[email protected])。

要将实时个性化(RTP)技术编码到应用中,开发者可以在Sequencing.com免费注册一个账号:注册免费账号。使用RTP进行应用开发总是免费的。

示例

您可以使用应用链来个性化哪些类型的应用?任何类型的应用...甚至是一个天气应用。

  • 开源的 Weather My Way +RTP 应用 与所有其他气象应用不同,因为它使用应用链为每个应用用户提供实时、基因定制的内容。
  • 通过使用其中一种有趣的示例遗传数据文件来亲自体验。这些示例文件免费提供给所有使用应用链的应用。

CocoaPod集成

请按照此指南在现有项目或新项目中安装App-Chain模块

  • 查看CocoaPods的一般说明:https://cocoapods.org.cn > getting started

  • 在Xcode中创建一个新的项目

  • 在项目目录中创建Podfile

    $ pod init
    
  • 在Podfile中指定sequencing-app-chains-api-objc pod参数

    pod 'sequencing-app-chains-api-objc', '~> 1.1.1'
    
  • 将依赖项安装到您的项目中

    $ pod install
    
  • 始终打开Xcode工作区而不是项目文件

    $ open *.xcworkspace
    

配置

没有必须要执行的严格配置。

只需将应用链的源文件拖入项目,即可将实时个性化添加到您的应用中。

下面的代码片段包含以下三个占位符。请确保将每个占位符替换为实际值

  • <your token>

  • <chain id>

    • 将其替换为从应用链列表中获得的App Chain ID
  • <file id>

    • 将其替换为用户在您的应用中使用时选择的文件ID
    • 使您的应用启用Sequencing.com的文件选择器的代码片段可以在文件选择器代码仓库中找到

Objective-C

AppChains Objective-C API概述

方法 目的 参数 描述
- (instancetype)initWithToken:(NSString *)token 构造函数 token - sequencing.com提供的安全令牌
- (instancetype)initWithToken:(NSString *)token withHostName:(NSString *)hostName 构造函数 token - sequencing.com提供的安全令牌
hostName - API服务器主机名。默认为api.sequencing.com
用于在需要报告API且需要安全令牌的情况下创建AppChains类实例的构造函数
- (void)getReportWithApplicationMethodName:(NSString *)applicationMethodName withDatasourceId:(NSString *)datasourceId withSuccessBlock:(void (^)(Report *result))success withFailureBlock:(void (^)(NSError *error))failure; 报告API applicationMethodName - 数据处理程序名称

datasourceId - 输入数据标识符

success - 成功操作的回调,结果包含Report对象

failure - 操作失败时的回调
- (void)getBatchReportWithApplicationMethodName:(NSArray *)appChainsParams withSuccessBlock:(ReportsArray)success withFailureBlock:(void (^)(NSError *error))failure; 带批请求的报告API appChainsParams - 批请求的参数数组
每个参数应是一个包含项目的数组
第一个对象 - applicationMethodName
最后一个对象 - datasourceId

success - 成功操作的回调,结果包含字典数组
每个字典都有以下键和对象
appChainID - 应用链 ID 字符串
report - 报告对象

failure - 操作失败时的回调

将代码添加到项目中

  • 导入 AppChains: import "AppChains.h"

之后,您就可以开始利用 Reporting API 来执行单个链请求

AppChains *appChains = [[AppChains alloc] initWithToken:yourAccessToken withHostName:@"api.sequencing.com"];

[appChains getReportWithApplicationMethodName:@"<chain id>"
        withDatasourceId:@"<file id>"
        withSuccessBlock:^(Report *result) {
            NSArray *arr = [result getResults];
            for (Result *obj in arr) {
                ResultValue *frv = [obj getValue];
                if ([frv getType] == kResultTypeFile)
                    [(FileResultValue *)frv saveToLocation:@"/tmp/"];
            }
        }
        withFailureBlock:^(NSError *error) {
            NSLog(@"Error occured: %@", [error description]);
        }];                                 

使用批量请求 API 为多个链请求的示例

AppChains *appChains = [[AppChains alloc] initWithToken:yourAccessToken withHostName:@"api.sequencing.com"];

// parameters array for batch request as example
NSArray *appChainsForRequest = @[@[@"Chain88", fileID], @[@"Chain9",  fileID]];

[appChains getBatchReportWithApplicationMethodName:appChainsForRequest
        withSuccessBlock:^(NSArray *reportResultsArray) {

            // @reportResultsArray - result of reports for batch request, it's an array of dictionaries
            // each dictionary has following keys: "appChainID": appChainID string, "report": *Report object

            for (NSDictionary *appChainReportDict in reportResultsArray) {

                Report *result = [appChainReportDict objectForKey:@"report"];
                NSString *appChainID = [appChainReportDict objectForKey:@"appChainID"];
                NSString *appChainValue = [NSString stringWithFormat:@""];

                if ([appChainID isEqualToString:@"Chain88"])
                    appChainValue = [self parseAndHandleReportForChain88:result]; // your own method to parse report object

                else if ([appChainID isEqualToString:@"Chain9"])
                    appChainValue = [self parseAndHandleForChain9:result]; // your own method to parse report object
            }
        }
        withFailureBlock:^(NSError *error) {
            NSLog(@"batch request error: %@", error);
        }];

故障排除

每个应用链代码应无配置要求或问题,直接使用。

其他提示

  • 确保以下三个占位符已替换为实际值

  1. <your token>
  2. <chain id>
    • 将其替换为从应用链列表中获得的App Chain ID
  3. <file id>

    • 替换为用户在使用您的应用程序时选定的文件 ID。
    • 使您的应用启用Sequencing.com的文件选择器的代码片段可以在文件选择器代码仓库中找到

资源

维护者

此存储库由 Sequencing.com 执勤维护。如果您需要更多相关信息或只是想说 hello,请通过以下链接联系 Sequencing.com 生物信息学团队:[email protected]

贡献

我们鼓励您积极地为我们进行分支。如果您有兴趣更新主分支,请发送拉取请求。如果有积极的贡献,我们会将其保留。