V2EX ufologist
 ufologist 最近的时间轴更新
ufologist

ufologist

V2EX 第 26661 号会员,加入于 2012-09-12 20:43:18 +08:00
# 关于我
热爱编程, 热爱互联网, 作为新时代的"手工艺人", 希望用代码让人们的生活更美好

# 兴趣爱好
N多, 主要为户外运动和新鲜事物

# 技术
喜欢Java, 常年混迹于J2EE领域, 却始终迷恋Web, 如痴如醉地追随着HTML/CSS/Javascript/Rails不能自拔.
很多新技术新任务需要完成, 从开发到设计, 从拿什么做什么到Who/Why/What/How不轻易写下一行代码.
向往敏捷的开发模式, 向往团队的心有灵犀一点通, 一个学习型团队铸就令人疯狂的产品.

# 痛恨手册
无责任感
拖拉
混日子
不求甚解
半桶水
小事做不好
技术控
学术控
复制粘贴
自命不凡
缺乏自制力
眼高手低
没有信用
没有目标
没有激情
执行能力差
不注重细节
无视团队
为什么你需要一个 mock server
Javascript    ufologist    2016-09-18 15:18:39 PM    最后回复来自 ufologist
22
让你的页面轻松适配各种移动设备和 PC 端浏览器
Javascript    ufologist    2015-07-24 22:55:01 PM    最后回复来自 fhefh
10
Bootstrap Cheat Sheet
  •  4   
    Bootstrap    ufologist    2014-08-16 14:36:03 PM    最后回复来自 janwen
    3
    基于Highcharts的差值连线
    Javascript    ufologist    2013-10-21 17:57:11 PM    最后回复来自 fityme
    2
    学习 Javascript 最难点之 -- 原型/闭包
    Javascript    ufologist    2015-09-23 18:27:30 PM    最后回复来自 dong3580
    13
    前端好难 -- 致即将开发移动 Web App 的新人们
    程序员    ufologist    2013-07-26 20:30:57 PM    最后回复来自 ufologist
    56
    远程实时调试手机上的Web页面
    Android    ufologist    2013-07-21 23:06:20 PM    最后回复来自 ufologist
    9
    ufologist 最近回复了
    2016-09-18 15:18:39 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @no13bus

    关于 puer-mock 使用过程中的常见问题答疑
    https://github.com/ufologist/puer-mock/blob/master/FAQ.md
    2016-09-17 16:30:07 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @no13bus 能够交流再好不过了,可以在 puer-mock 的项目中发 issue 来交流下
    2016-09-14 17:07:12 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @leqoqo 已经发布了 1.2.0 版本, 欢迎使用
    2016-09-05 21:45:45 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @leqoqo 分页为什么需要定义两个接口呢?难不成需要第一页和第二页返回不同结构的数据?

    puer-mock 只验证客户端是否传入了必要的参数,不承担实际的业务逻辑,毕竟是 mock server ,不考虑实现很复杂的验证逻辑

    因此你可以这样定义接口
    "POST /list": {
    "request": { // 仅验证参数
    "body": {
    "limit": 20,
    "offset": 0
    }
    },
    "response": {
    "data": {
    "list|1-10": [{
    "id": "@id"
    }]
    }
    }
    }
    2016-09-05 17:54:42 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @leqoqo puer-mock 的路由配置是完整支持 RESTful 的

    看到你想对 form 参数进行一些过滤, 是指什么? 是指对请求参数做一些验证吗?

    如果是这个功能, puer-mock 接下来的 1.2.0 版本即将支持这个功能

    例如:
    "request": {
    "querystring": {},
    "header": {},
    "body": {}
    }

    完整说明请参考 example/_mockserver.json
    https://github.com/ufologist/puer-mock/blob/master/example/_mockserver.json
    2016-09-04 19:39:05 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @int64ago 感谢你提出的这些顾虑,也引发了我的思考,希望和大家共同探讨下

    -----------------

    在做 puer-mock 的时候,我参考了很多接口规范和接口平台,主要是从 Swagger 和 RAP 那里获得的灵感,希望可以尽量简单的通过 JSON 配置来定义一个接口,并生成随机数据,继而形成一个标准的接口文档(谁说接口文档只能是 word 之类的)。

    如果形成了接口规范,我想后面的事情都是有可能的。

    > 应该有个平台
    puer-mock 目前比较适合中小型团队的前后端协作,因为是直接编写 JSON 文件做为接口文档的,因此需要双方都熟悉配置,对于技术团队没什么大问题,定义接口的方式也足够简单,基本上熟悉 HTTP 的,看一眼就明白这些接口的定义了。

    如果要更友好些,那就需要做一层 UI ,做一个系统,一个平台,通过可视化的手段来生成接口配置文件就好了。所以说定义好接口规范是最基础最重要的第一步, puer-mock 尝试做好这一步。

    > 平台的修改应该很容易反应到本地 Mock 数据
    puer-mock 支持修改了接口配置后马上生效,应该还是能够满足大部分需求的

    > Mock 生成的数据应该同时对 iOS/Android/... 都友好
    puer-mock 生成的 mock 没有针对某个客户端,属于后端接口规范,对客户端都是友好的,也没有任何侵入性

    > Mock 数据的定义应该可以自己插入一些简单逻辑
    puer-mock 后面是通过强大的 mock.js 来生成 mock 数据,因此针对"某个字段只返回 1-10 之间的数字"这样的需求是完全满足的。
    例如配置方式如下
    "field1": "@integer(1, 10)"

    > Mock 数据的定义应该考虑到可复用性
    puer-mock 在参考 Swagger 规范的时候就意识到了这个问题,但出于简单的考虑,暂时只能复制粘贴那些重复的 response 定义,这确实是埋了个坑,但对于中小型团队应该还好啦,有规范总比没有的好。关于这点, puer-mock 考虑以后是否通过 Swagger ref 的方式来引用预先定义好的数据结构,或者通过上层的接口平台来解决这个问题,将数据结构定义在接口平台,让接口平台来生成重复的数据结构引用,来避免手工复制粘贴造成数据结构出现潜在的不一致性问题

    > Mock 的管理应该区分用户权限
    这个不在 puer-mock 的考虑范围,上层的接口平台可以来做这个事情,这也是为什么越往后统一的接口平台越重要的原因,形成部门级公司级的协作流程

    > Mock 接口和数据定义后,应该可以有条件直接生成文档
    目前 puer-mock 内置了接口文档,可以在线查看,虽然还比较简陋,只是格式化展示了接口定义的 JSON 文件,做了分组便于查看。但根据接口定义的 JSON 输出接口文档完全是可以自定义的,所以想生成一份高大上的接口文档完全没有问题

    -----------------

    最后说下目前 puer-mock 已经在我厂中推行,有 3 个项目(小公司项目本来就不多啊,大家见笑了)使用了,定义了 50 多个后端接口,前端 /App 端 /后端都表示很实用,确实提高了工作效率
    2016-09-04 17:05:52 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @chrishine 有缘啊, 我也用过 moco, 但貌似不能做动态可变的假数据, 只能是写死的假数据, 配置起来也不是很直观, 是基于 Java 实现的, 对于前端来说可能不太方便定制.

    https://github.com/dreamhead/moco
    2016-09-04 16:36:10 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @int64ago 感谢你的分享, 长知识了, puer-mock 相比 NEI, 根本是没法比了, NEI 是一个完善的接口管理平台, 而 puer-mock 仅仅是为了方便大家快速定义接口做一个 mock server 而已.

    说到造轮子, 可能是我见识少, 没有看见过 puer-mock 这样的轮子, 纯粹是为解决自己遇到的问题, 如果要论可用性, 我自己觉得很方便, 已经够用了, 其他准备使用的小伙伴们如果有问题可以发 issue 或者 pr, 或者再造一个更好的也无妨.

    另外看了一圈 NEI , 不知是否可以算是网易公司(内部?)级别的东西, 感叹大公司就是好啊, 如果所有团队都能够这样统一作业, 可谓是行业的又一大进步, 值得我们学习. 感觉和阿里系的 RAP 有部分功能类似.
    https://github.com/thx/RAP
    2016-09-04 16:02:59 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @microchang 试用了一下 fake.llchangll.com , 可是没有找到在哪里可以定义接口的参数?

    http://storage1.imgchr.com/images/fakeapi.png
    2016-09-03 18:48:48 +08:00
    回复了 ufologist 创建的主题 Javascript 为什么你需要一个 mock server
    @rainysia 据我所知 swagger 可以定义接口,做为接口文档,但如果后端接口还没有开发完,前端难道不需要 mock 吗?
    这时候前端一般的做法就是自己手工做假数据,但这样做的效率和方式都不理想,所以才做了 puer-mock 项目
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1435 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 16:48 PVG 00:48 LAX 08:48 JFK 11:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86