如何从REST API GET请求返回值?

时间:2017-04-17 02:20:49

标签: api swift3 get

我是swift和iOS开发的新手,所以对不起,如果这个问题很愚蠢,但我似乎无法让我的函数返回API GET请求的结果。 我在朋友的计算机上运行Microsoft SQL服务器,我使用DreamFactory远程访问它。 DreamFactory正在为SQL查询创建和管理API。我在我的localhost上托管DreamFactory API Web服务器,我通过我的iOS应用程序访问它。

这是我到目前为止所做的。

func validId() -> Bool {
    var queryId: Int = 0 // just for testing

    let table = "SM.Customers"
    // this url looks like ( http://localhost:8080/api/v2/db/_table/SM.Customers/1989/?api_key=065dce537)
    let url = URL(string: "\(urlString)\(table)/\(self.id)?api_key=\(self.api_key)")!

    URLSession.shared.dataTask(with: url, completionHandler: {
        (data, response, error) in
        if(error != nil){
            print(error.debugDescription)
        }else{
            do{
                self.userData = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String: AnyObject]
                OperationQueue.main.addOperation {
                    queryId = self.userData["CustId"] as! Int
                    print(queryId)
                }

            }catch let error as NSError{
                print(error)
            }
        }



    }).resume()


    return (String(queryId) == self.id)

}

我可以使用OperationQueue.main.addOperation {...}中提取的数据在db下执行操作,但我无法真正返回值或将值分配给{{1}之外的变量代码块。此函数taskprint(queryId),但会返回1989,因为它将false读为(String(queryId) == self.id)

我有什么想法可以解决这个问题吗?

0 个答案:

没有答案