Marvelous 是一个面向 iOS 和 OSX 平台的,非官方的漫威漫画 API 原生接口。它建立在Foundation 框架之上,并使用了 Cocoa 框架中内置的高层操作和网络抽象。此接口的设计旨在使您的项目使用简单,与 API 之间语义相关。
Marvelous 需要
Marvelous 可以通过下载编译好的库或框架并手动设置它(这需要很多智慧和耐心)或者您可以使用 Cocoapods 作为 pod 使用库。
管理器(或单例)类提供 API 接口,并能够调用特定的 API 并将其响应作为回调返回。
RCMarvelAPI
根据调用,您可以使用过滤器来细化搜索。您只需将这些过滤器作为参数传递给在 RCMarvelAPI
类上调用的方法即可。
RCCharacterFilter
RCComicsFilter
RCCreatorFilter
RCEventFilter
RCSeriesFilter
RCStoriesFilter
每当 RCMarvelAPI
类从 API 收到非错误响应时,它将返回一个 RCQueryInfoObject
对象以及一个 RCCharacterObject
、RCComicsObject
、RCCreatorObject
、RCEventObject
、RCSeriesObject
或 RCStoryObject
对象。这些对象也可以包含其他自定义对象。
RCQueryInfoObject
RCCharacterObject
RCComicsObject
RCCreatorObject
RCEventObject
RCSeriesObject
RCStoryObject
RCListObject
RCImageObject
RCComicPriceObject
RCComicDateObject
RCTextObject
RCSummaryObject
RCURLObject
过滤器和对象都提供了枚举类型,以避免任何歧义并使您的操作更加便捷。
RCAPITypes
RCOrderByTypeCodes
RCIssueFormatCodes
RCIssueTypeCodes
RCFrequencyTypeCodes
RCDateDescriptorCodes
RCImageAspectRatioCodes
RCImageSizeCodes
RCBooleanValueCodes
#import <Marvelous/RCMarvelAPI.h>
// First, you need to define your Marvel developer public and private keys
[RCMarvelAPI api].publicKey = @"YourMarvelPublicKey";
[RCMarvelAPI api].privateKey = @"YourMarvelPrivateKey";
// Then, you can use the API interface to search for a single resource by its identifier
NSNumber *identifier = @1234;
[[RCMarvelAPI api] characterByIdentifier:identifier andCallbackBlock:^(id result, RCQueryInfoObject *info, NSError *error) {
NSLog(@"ERROR: %@", error);
NSLog(@"QUERY INFO: %@", info);
NSLog(@"RESULT: %@", result);
}];
// Or you can use the API interface to search for multiple resources by its filter
RCCharacterFilter * filter = [[RCCharacterFilter alloc] init];
filter.nameStartsWith = @"Wol";
filter.limit = @2;
filter.orderBy = @[@(RCOrderByTypeCodeNameAscending)];
[[RCMarvelAPI api] charactersByFilter:filter andCallbackBlock:^(NSArray *results, RCQueryInfoObject *info, NSError *error) {
NSLog(@"ERROR: %@", error);
NSLog(@"QUERY INFO: %@", info);
NSLog(@"RESULTS: %@", results);
}];
// Finally, you can use the API interface to search for multiple resources by an identifier and a filter
NSNumber identifier = @4321;
RCCharacterFilter * filter = [[RCCharacterFilter alloc] init];
filter.name = @"Captain America";
filter.orderBy = @[@(RCOrderByTypeCodeDateModifieDescending)];
[[RCMarvelAPI api] charactersByComicIdentifier:identifier filter:filter andCallbackBlock:^(NSArray *results, RCQueryInfoObject *info, NSError *error) {
NSLog(@"ERROR: %@", error);
NSLog(@"QUERY INFO: %@", info);
NSLog(@"RESULTS: %@", results);
}];
Marvelous 包含了一个位于 MarvelousTests 文件夹中的单元测试集合。您可以在 XCode 中通过选择 Marvelous 或 MarvelousOSX 方案,然后按 ⌘+U 快捷键执行测试套件。
Marvelous 包含了用 HeaderDoc 编写的文档,该文档是 XCode 自带的。它还支持 XCode 5.0 引入的新功能,即在 Quick Help Inspector、Help Popup 和 Code Completion 中将源代码注释作为文档显示。
Marvelous 的在线文档可在 CocoaDocs 上找到。您还可以将这些文档作为 docsets 导入到 XCode 和/或 Dash 中。
RCMarvelAPI
异步测试Marvelous 是由 Javier Cicchelli 在同时处理其他项目时作为一个小项目创建的。我(实际上是)一位大 《Marvel》 粉丝(我可以告诉你,我是看着《X-Men》长大的...),在阅读了 Marvel 的交互式文档 中如此简单又棒妙的 API 设计后受到很大启发。好吧,我花了一些时间来精心制作这个您即将使用的美丽之作。
说实话,在这个库上的工作帮助我清空了大脑,保持了理智! :P
敬请关注有关这个优秀库的其他更新,以及其他一些很酷的东西!此外,请不要犹豫,提出评论、建议、问题和建设性的批评。
卓越是用Objective-C、一些软件工程和许多极客精神、粉丝和爱打造的。欢迎你们以任何可能的方式为它做出贡献:从报告问题或修复缺陷到在Twitter/Facebook等上分享它的存在,或者在你们的应用程序中使用它。只是别忘了提一下,传递这份爱,好吗?
如果你们中有人在致力于漫威工作的,读到了这几段话,我只是想你们能在你们的应用程序中使用这个库!那将像美梦成真一样,我将会因为能给你们一些回响感到非常开心,自从我记得开始,你们就一直在支持我。总之,这是我对你们小小的感谢,漫威。 ;)
卓越遵循MIT许可证。请参阅LICENSE文件以获取更多信息。
API数据由漫威提供。版权所有 © 2014 漫威官方网站