sequencing-app-chains-api-swift 2.1.1

sequencing-app-chains-api-swift 2.1.1

许可证 MIT
发布最新发布2017年2月

Bogdan Laukhin 维护。



  • 测序

CocoaPod-iOS-App-Chains-Swift

App Chains 是将实时个性化(RTP)轻松集成到您的应用中的方式。使用此用于 iOS 应用的 CocoaPods 插件轻松添加 App-Chains 功能。

内容

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

简介

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

应用链是 API 调用和应用程序用户基因分析集成。每个应用链都提供有关特定特征、状况、疾病、补充剂或药物的信息。应用链用于向应用程序用户提供基因定制的内容,以便在基因水平上即时个性化用户体验。这称为 实时个性化(RTP)

每个应用链包括

  1. API 调用
    • 触发性 API 调用,该调用将在 Sequencing.com 托管的计算机上触发对您的应用程序用户的基因进行遗传分析
  2. API 响应
    • 简单易懂的结果以 API 响应形式发送到您的应用程序
  3. 个性化
    • 您的应用程序使用这些信息,这些信息直接源自您的应用程序用户基因的实时数据,以创建真正个性化的用户体验

例如

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

虽然已经有很多应用链可以用于个性化大多数应用程序,但如果您需要某种服务却看不到相应的应用链,请告诉我们!(例如,通过电子邮件联系我们:[email protected])。

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

示例(使用 RTP 的应用程序)

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

  • 开源的 Weather My Way + RTP 应用 与所有其他天气应用不同,因为它使用应用链向每个应用程序用户提供实时基因定制的内容。
  • 亲自体验一下,使用其中一个有趣的基因数据样本文件。这些样本文件免费提供给所有使用应用链的应用。

配置

Swift

AppChain模块包含封装在内部的逻辑框架(基于Objective-C语言)。AppChains Swift API概述

方法 目的 参数 描述
init(token: String, withHostName: String) 构造函数 token - Sequencing.com提供的安全令牌
Hostname - API服务器主机名。默认为api.sequencing.com
当需要报告API并且需要安全令牌时,用于创建AppChains类实例的构造函数
func getReportWithApplicationMethodName(applicationMethodName: String!, withDatasourceId: String!, withSuccessBlock: ((Report!) -> Void)!, withFailureBlock: ((NSError!) -> Void)!) 报告API applicationMethodName - 数据处理例程的名称

datasourceId - 输入数据标识符

成功 - 成功操作执行的回调,结果以Report对象返回

失败 - 操作失败时执行的回调
func getBatchReportWithApplicationMethodName(appChainsParams: [AnyObject]!, withSuccessBlock: ReportsArray!, withFailureBlock: ((NSError!) -> Void)!) 带有批量请求的报告API appChainsParams - 批量请求的参数数组。
每个参数应该是一个包含两个元素的数组
第一个对象 - applicationMethodName
最后一个对象 - datasourceId

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

失败 - 操作失败时执行的回调

向项目中添加代码

  • 首先,您需要创建桥接头文件。选择 File > New > File > Header File > 将其命名为

    project-name-Bridging-Header.h
    
  • 在桥接头文件中添加AppChains类导入

    #import <AppChainsLibrary/AppChains.h>
    
  • 在项目设置中注册您的桥接头文件。选择您的项目 > 项目目标 > Build Settings > Objective-C Bridging Header 指定桥接头文件的路径

    $(PROJECT_DIR)/project-name-Bridging-Header.h
    

之后,您就可以开始使用 Reporting API 进行单个链请求,以下是一个示例

let appChainsManager = AppChains.init(token: accessToken as String, withHostName: "api.sequencing.com")

appChainsManager.getReportWithApplicationMethodName("Chain88", withDatasourceId: fileID, withSuccessBlock: { (result) in
            let resultReport: Report = result as Report!

            if resultReport.isSucceeded() {    
                if resultReport.getResults() != nil {
                    for item: AnyObject in resultReport.getResults() {

                        let resultObj = item as! Result
                        let resultValue: ResultValue = resultObj.getValue()

                        if resultValue.getType() == ResultType.Text {
                            print(resultObj.getName() + " = " + (resultValue as! TextResultValue).getData())
                        }
                    }
                }   
            } else {
                print("Error occured while getting genetic information")
            }




            }) { (error) in
                print("Error occured while getting genetic information. " + error.localizedDescription)
        }

使用批量请求API对多个链进行 操作的示例

let appChainsManager = AppChains.init(token: accessToken as String, withHostName: "api.sequencing.com")

let appChainsForRequest: NSArray = [["Chain88", fileID],
                                    ["Chain9", fileID]]

appChainsManager.getBatchReportWithApplicationMethodName(appChainsForRequest as [AnyObject], withSuccessBlock: { (resultsArray) in
            let reportResultsArray = resultsArray as NSArray

            for appChainReport in reportResultsArray {
                let appChainReportDict = appChainReport as! NSDictionary
                let resultReport: Report = appChainReportDict.objectForKey("report") as! Report;
                let appChainID: NSString = appChainReportDict.objectForKey("appChainID") as! NSString;

                if appChainID.isEqualToString("Chain88") {
                    appChainValue = self.parseReportForChain88(resultReport) // your own method to parse report object
                    print(appChainValue)

                } else if appChainID.isEqualToString("Chain9") {
                    appChainValue = self.parseReportForChain9(resultReport) // your own method to parse report object
                    print(appChainValue)
                }   
            }

        }) { (error) in
            print("batch request error. " + error.localizedDescription)
            completion(appchainsResults: nil)
        }

故障排除

每个应用链代码都应直接运行,无需任何配置要求或问题。

其他提示

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

  1. <你的令牌>

  2. <链ID>

  3. <文件ID>

资源

维护者

此存储库由Sequencing.com积极维护。如果您需要更多信息或只是想打招呼,请通过电子邮件联系[email protected]

贡献

我们鼓励您热切地进行分支。如果您有兴趣更新主分支,请给我们发送拉取请求。如果更改具有积极的贡献,我们将保持这些更改。