首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在这个RxAlamofire源代码中,实际的API调用在哪里?

在这个RxAlamofire源代码中,实际的API调用在哪里?
EN

Stack Overflow用户
提问于 2019-10-09 05:44:31
回答 1查看 201关注 0票数 0

我正在尝试找出API调用中的数据来自何处。具体地说,我想知道req.user是从哪里来的,因为我知道没有参数被传递到API调用中。

以下是服务器端代码(在JS中):

代码语言:javascript
复制
let APIHandler = (req, res) = > {
    if (req.user) {
       latitude = req.user.location.latitude
       longitude = req.user.location.longitude
    }
}

这是客户端代码(在Swift中):

代码语言:javascript
复制
 let strURLTo = SERVICE.BASE_URL + apiName + limit
 let headers = AuthorizationHeader.getAuthHeader(staticToken: false)

 var urlComponents = URLComponents(string: strURLTo)
 urlComponents?.queryItems = [URLQueryItem(name: "offset", value: String(offset)),
                             URLQueryItem(name: "limit", value: String(limit))]

 let strURL  = urlComponents?.url

 RxAlamofire.requestJSON(.get,strURL!,parameters:[:],headers:headers) 

            .debug()

            .subscribe(onNext: {(HeaderResponse, bodyResponse) in

                if let dict = bodyResponse as? [String: AnyObject] {
                    if let respDict: [String: Any] = JSON(dict).dictionaryObject {
                        let response = ResponseModel.init(statusCode: HeaderResponse.statusCode, response:respDict)
                        self.subject_response.onNext(response)
                    }
                }

            }, onError: { (error) in
                self.subject_response.onError(error)
            })

            .disposed(by: disposeBag)

最后是RxAlamofire.requestJson的定义:

代码语言:javascript
复制
public func requestJSON(_ method: Alamofire.HTTPMethod,
    _ url: URLConvertible,
    parameters: [String: Any]? = nil,
    encoding: ParameterEncoding = URLEncoding.default,
    headers: [String: String]? = nil)
    -> Observable<(HTTPURLResponse, Any)>
{
    return SessionManager.default.rx.responseJSON(
        method,
        url,
        parameters: parameters,
        encoding: encoding,
        headers: headers
    )
}

我试图一步一步地跟踪RxAlamofire.requestJSON函数,但我看不到实际的API调用发生在哪里(对我来说,它似乎只是概述了它期望/返回的类型)。此外,RxAlamofire.requestJSON(.get,strURL!,parameters:[:],headers:headers)调用中没有参数。

EN

回答 1

Stack Overflow用户

发布于 2019-10-09 06:38:24

实际调用是在下面这行中进行的(为清楚起见,这行已经分散在多行中):

代码语言:javascript
复制
return SessionManager.default.rx.responseJSON(
    method,
    url,
    parameters: parameters,
    encoding: encoding,
    headers: headers
    )

参数设置如下:

代码语言:javascript
复制
var urlComponents = URLComponents(string: strURLTo)
urlComponents?.queryItems = [URLQueryItem(name: "offset", value: String(offset)),
                             URLQueryItem(name: "limit", value: String(limit))]

但是,我也没有看到user被设置,所以它可能是在这个答案顶部的API函数中发生的?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58294464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档