我試圖設置RKRoute以使用RestKit從Dropbox API獲取文件夾內容。以「/」作爲參數的RKRoute不起作用
獲取內容的URL是https://api.dropbox.com/1/metadata/dropbox/<path>
。
所以我設置了這樣的反應和路線:
// objectManagers baseURL is @"https://api.dropbox.com/1/"
RKResponseDescriptor *rootResponse = [RKResponseDescriptor responseDescriptorWithMapping:dynamicMapping pathPattern:@"metadata/dropbox:path" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager.router.routeSet addRoute:[RKRoute routeWithClass:[DropboxFolder class] pathPattern:@"metadata/dropbox:path" method:RKRequestMethodGET]];
// dropboxFolder.path is @"/" for root
// dropboxFolder.path is @"/Images" for the "Images"-folder contained in root
但隨後的路徑匹配失敗在[RKPathMather matchesPath:tokenizeQueryStrings:parsedArguments:
因爲有斜槓的數量進行檢查這樣的:RKNumberOfSlashesInString(self.patternString) == RKNumberOfSlashesInString(self.rootPath)
映射作品,當我註釋掉這個檢查時,但我確定它在其他一些情況下是需要的。
感謝您的回答。配置1路由'metadata/dropbox:path'和2個響應描述符'metadata/dropbox /'和'metadata/dropbox /:pathWithoutSlash'爲我工作。正如你所看到的,我想,我需要實現一個自定義屬性'pathWithoutSlash',這不是那麼美觀和乾淨。但它有效,所以謝謝。 – Pipo