使用 Django Rest Framework 设置 iOS Restkit

Posted

技术标签:

【中文标题】使用 Django Rest Framework 设置 iOS Restkit【英文标题】:Setting up iOS Restkit with Django Rest Framework 【发布时间】:2016-01-17 22:33:54 【问题描述】:

我在这个 url 上有一个 API:https://evening-everglades-1560.herokuapp.com/api/v1/stocks/

我正在尝试用这样的方式实现 ios RestKit(这是在 MasterViewController.m 中):

RKObjectMapping *stockMapping = [RKObjectMapping mappingForClass:[Stock class]];
[stockMapping addAttributeMappingsFromDictionary:@@"stockId": @"id"];
NSIndexSet *statusCodes = RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful);
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:stockMapping method:RKRequestMethodAny pathPattern:nil keyPath:@"" statusCodes:statusCodes];

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://evening-everglades-1560.herokuapp.com/api/v1/stocks.json"]];
RKObjectRequestOperation *operation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[responseDescriptor]];
[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *result) 
        Stock *stock = [result firstObject];
        NSLog(@"mapped w stock: %@", stock);
     failure:^(RKObjectRequestOperation *operation, NSError *error) 
        NSLog(@"failed w error: %@", [error localizedDescription]);
    ];
[operation start];

这是记录的内容:

2016-01-17 16:42:08.233 Stocks[9415:1208281] W restkit.object_mapping:RKMapperOperation.m:99 Adding mapping error: No mappable values found for any of the attributes or relationship mappings
2016-01-17 16:42:08.234 Stocks[9415:1208308] I restkit.network:RKObjectRequestOperation.m:250 GET 'https://evening-everglades-1560.herokuapp.com/api/v1/stocks.json' (200 OK / 0 objects) [request=0.4798s mapping=0.0042s total=0.5528s]
2016-01-17 16:42:08.235 Stocks[9415:1208245] mapped w stock: (null)`

我不知道为pathPatternkeyPath 放什么。

提前致谢!

【问题讨论】:

只是看起来映射是错误的方式:@"id": @"stockId" 当我切换它们时,我得到这个错误:valueForUndefinedKey:]: this class is not key value coding-compliant for the key stockId. 那把钥匙是从哪里来的?我下载的 JSON 中没有看到,你也没有给出你的对象定义 我只是想让一些东西与 Restkit 和我的 API 一起工作。我不确定如何用这个配置 Restkit。 this API 的任何工作示例都会非常有用。 【参考方案1】:

感谢wain 询问“你还没有给出你的对象定义”。我忘了在stock.h cocoa 类中定义提交者。

@property(nonatomic, strong) NSString *submitter; 添加到stock.h 修复了它。

【讨论】:

以上是关于使用 Django Rest Framework 设置 iOS Restkit的主要内容,如果未能解决你的问题,请参考以下文章

Django Rest Framework 和 django Rest Framework simplejwt 两因素身份验证

18-Django REST framework-使用Django开发REST 接口

如何在 django-rest-framework 中为 API 使用 TokenAuthentication

Django-rest-framework 和 django-rest-framework-jwt APIViews and validation Authorization headers

django rest framework中文介绍

使用 django-rest-framework-simplejwt 注册后返回令牌