番外篇之自定义前端接口

自定义前端接口工具 RAP.jpg
  • 请问:你在开发时,后端还没有完成数据输出,我们前端是不是只能写静态模拟数据?
  • 请问:然后将模拟数据写在 JS 文件里,数据是不是太长了?
  • 请问:写模拟数据是不是太累,需要收集很多的资源:图片、地址、随机数、IP 等等?

那小老弟就先来介绍下 Mock.js ,它可以做什么(对传统前端来说):
根据数据模版生成模拟数据。
模拟 AJAX 请求生成并返回模拟数据。
基于 HTML 模版生成模拟数据。

RAP通过GUI工具帮助WEB工程师更高效的管理接口文档,同时通过分析接口结构自动生成Mock数据、校验真实接口的正确性,使接口文档成为开发流程中的强依赖。有了结构化的API数据,RAP可以做的更多,而我们可以避免更多重复劳动。


  • OK!了解了 Mock.js 的机制后,是不是想知道具体是怎么玩的?那就要说今天的重头戏:RAP了(额,我说的 RAP 可不是代表说唱的意思),具体是什么看下面的截图就行:
你应该知道的 RAP .png
  • 那么毫无疑问自己需要自己注册个账号(像上图右上角),然后再导航栏中的团队模块建立自己的团队(下图是我创建的团队):
创建团队.png
  • 创建完团队以后,点击进入我的主页,创建自己的项目(同样如下图):
创建项目.png
  • 然后点击进入,进行编辑自己的接口:
自定义编辑接口.png

TIP:

  1. 请求的参数列表和响应参数列表都是自定义的;可以看到变量名、含义、类型、备注(具体语法,可以看 Mock.js 文档)。
  2. 通过自己编辑,可以多了解下后台接口的知识,很多东西我自己也是凑出来的。。。其中关于有个 data|10 的变量名(10 表示能随机生成 10 条数据),调过接口的同学都知道里面通常是个json对象的集合,里面有各种子变量: { key : Value } 的键值对,也自定义。
  3. 其中变量名:thumb,是定义的图片,在后面备注中:是定义图片的规格大小,以及随机生成的颜色样式。
  • 编辑完然后点击秒存后,点击接口详情左侧的播放标识后,并输入 accessToken 后如下图:
输出数据.png
  • 上图就是随机生成的 10 条数据,而右下角 3 request staring,url:后面的就是我地址,点击它可以看到这是个对象,但是我直接在控制台输出 Mock.mock ( 这个对象 ),发现报错:Mock is not defined,很明显没有 Mock 这个方法,于是我又去 Mock.js 网页下打开控制台,重新一样操作了下,咦,可以了。。。具体情况如下图:
Mock is not defined.png

正常显示.png
  • OK,通过上图可以看出来随机生成的对象需要经过 Mock.mock ( ) 处理后就可以转换成我们平时需要的 json 对象,那么我需要在RN中使用Mock,于是我要安装Mock.js,输入命令:npm i mockjs --save 后,就可以在 package.json 中看到 Mock.js 了,如下图:
package.json.png
  • 现在的话,我只需要用网络请求的 fetch 方法,把我之前生成的 url 传进去就行了,下图是我 fetch 请求的代码:
fetch 请求.png

遇到的小坑:

  • 在 IOS 9 应用通讯安全策略进行了升级,已不再支持 http (可以看出我的 url 就是 http )这种不安全的协议了(至于为什么 http 不安全,科普下:http 是超文本传输协议,信息采用明文传输,而 https 则使用 SSL 加密传输协议进行传输),既然服务器的链接并不是我们前端所能决定的,如果一定要发送 http 协议的请求,可以修改当前项目的 info.plist 文件来实现:
解决方式.png
  • 现在的话,reload 以后可以在控制台上看到数据了:
输出数据.png
  • 但是,你以为这样就结束了?NO,第二个坑来了,获取到数据是没错,但是我发现 数据里的 thumb 图片显示不出来,我同样直接把这个 thumb 后的 value 直接去搜,发现能显示出页面,这就说明这图片是有用的,难道是请求慢?没能很快的加载出图片?有这个可能,于是我就等一会,麻痹,等了10分钟都不出来,这就肯定不是慢的问题了。。。最终我解决方法是打开 XCode build 后就可以渲染出图片了(我之前是输命令 react-native run-ios 起的模拟器),你要问我为什么,我只能说可能需要原生 build 支持下,图片才被支持吧。。。具体效果看下图:
动态效果图.gif
  • 那到这里其实已经可以结束了,但是我还要分享我找到的一个关于 HTTP类型 知识点(以下内容不是我的领域,具体说什么我也不懂,我只是照抄。。。):

我之前所 解决 http 请求的方法只是建立在所访问的请求是 HTTP 类型的基础上,那么一劳永逸的方法就是服务端升级使用 TLS 1.2 SSL 加密请求的 HTTPS 协议(服务器已支持 TLS 1.2 SSL,但 IOS9 上还是不行,还要进行链接里的适配操作。那是因为:ATS只信任知名 CA 颁发的证书,小公司所使用的 self signed certificate,还是会被 ATS 拦截,对此,建议使用链接中给出的 NSExceptionDomains,并将你们公司的域名挂在下面。)

参考:RAP 参考资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,053评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 光阴如大江之水,不舍昼夜。时至今日,已窃居军队十一个春秋。遥忆当年书生意气,妄想金戈铁马,气吞万里如虎。也曾远游南...
    光良1982阅读 261评论 1 2
  • 本文介绍如何使用Grpc来否件和发布RPC服务,本文在最后附上github地址。 1.下载&安装 java版本的p...
    cooze阅读 6,054评论 0 4
  • 跟着感觉走,虽然不对。但是好舒服。 哈哈哈哈哈哈哈
    喵喵囡囡阅读 184评论 0 0