有没有这样的云服务:我只需定义好 mysql 的字段,就可以根据字段生成 restful api 了,我只需要写个前端 app 就行了?

2018-08-16 12:21:34 +08:00
 ericgui

如题

哎呀,自己写后端简直太他妈纠结了。

或者有这样的现在的 repo 也行

6963 次点击
所在节点    程序员
50 条回复
wangxiaoaer
2018-08-16 15:10:34 +08:00
@TommyLemon #18 说实在的,我没看明白你这个项目干啥用的。
talisk
2018-08-16 15:10:35 +08:00
同推荐 LeanCloud
suantong
2018-08-16 15:13:43 +08:00
自己部署 parse server
TommyLemon
2018-08-16 15:16:45 +08:00
@wangxiaoaer
后端:零用时开发接口、零沟通零被打扰。
前端 /客户端:内容可任意组合、结构可任意嵌套、零沟通零打扰零等待。

后端不用写接口、也不用写文档就能提供"接口"和"文档",前端 /客户端不用看"文档"就能调用"接口"。

APIJSON 实现了前端 /客户端要什么就返回什么,而不是后端给什么才能用什么,从根本上解决了:
1.浪费性能、流量和带宽
传统 RESTful:返回不需要的字段、对象等
APIJSON:完全由请求指定返回内容,没有不需要的

2.各种奇葩的缩写、混乱的命名
传统 RESTful:各种缩写、拼音、驼峰和非驼峰混用等,只有看文档才知道是什么、才知道用哪个,而且文档还很可能有错误。
例如
评论数量可能是 commentCount, comment_count, cmt_count, pl_num...
分页页码可能是 page, pageNum, page_number, page_num, pnum...

APIJSON:常用的字段都已标准化,限制列表数量都用 count,分页页码都用 page,总数都用 total

3.几百甚至上千个混乱的状态码
传统 RESTful:各项目几乎完全不通用,不看相关的内部文档根本不知道对应的错误是什么,而且文档还很可能有错误。
例如
注册: 成功 600, 手机号不合法 601, 验证码错误 603, 手机号已注册 607, 缺少必要字段 609...
评论: 成功 1070, 不允许评论 1071, 参数错误 1073, 动态被删除 1075...

APIJSON:只有十几个 HTTP 标准状态码,注释详细,即便不看注释网上一查也有一大堆正确的结果

4.文档过时,与接口不同步
传统 RESTful:后端把接口改了没有及时通知,前端 /客户端莫名其妙调了半天才发现
APIJSON:可以用 APIJSONAuto 在线工具 查看测试用例、以及表和字段的属性,包括名称、类型、长度、默认值、注释等

5.应用界面和接口强耦合难分离
传统 RESTful:比如某个版本的 QQ 空间动态的 JSON 结构必须对应某个版本的某个接口,有时候 JSON 结构甚至是由后端拍脑袋决定的,不好用也得用
APIJSON:完全由请求指定返回的 JSON 结构,即便 UI 变化也不需要对接口做任何更改

6.版本迭代导致大量重复功能的接口
传统 RESTful:为了兼容旧版应用不好直接改原来的接口,一般只能新增
APIJSON:查询不需要对接口做任何更改,增删改可用 WorkBench 等可视化工具

7.前端 /客户端与后端扯皮
传统 RESTful:前端 /客户端想要一次性返回或者更方便解析的结构,但后端想要少写代码
APIJSON:完全由前端 /客户端发的请求指定返回的 JSON 内容与结构,可任意组合任意嵌套,后端完全是自动解析不需要写代码

8.数据库操作不安全
传统 RESTful:delete 忘加 where 直接删光全部数据,只要发生一次
APIJSON:对写操作强制要求指定 id:1(单个)或 id{}:[1,2,3](批量),并且自动校验权限

9.开发流程繁琐周期长
传统 RESTful:后端写接口>后端写文档>前端 /客户端查文档>(前端 /客户端关于文档向后端提问>后端解决问题并通知或等待再次被问)>前端 /客户端调用接口>(前端 /客户端关于实际使用向后端提问>后端解决问题并通知或等待再次被问)>前端 /客户端解析返回结果>(前端 /客户端关于返回内容或结构向后端提问>后端解决问题并通知或等待再次被问)

APIJSON:前端 /客户端调用接口>前端 /客户端解析返回结果

为什么要用 APIJSON ?或者 APIJSON 有什么用?
https://github.com/TommyLemon/APIJSON/wiki
CtrlSpace
2018-08-16 15:18:20 +08:00
BaaS
frantic
2018-08-16 17:23:06 +08:00
我现在在用 LeanCloud 的 BaaS 服务
reus
2018-08-16 17:23:59 +08:00
毫无意义,只不过是将后端需要实现的逻辑放到前端来实现,工作量一点没少
TommyLemon
2018-08-16 17:52:55 +08:00
@reus BaaS 云服务确实是这样,
所以你可以试试 APIJSON —— 开源的 API 自动化解决方案。
看上面 TommyLemon 的回答
misaka19000
2018-08-16 17:54:55 +08:00
你可以使用 ES,支持通过 HTTP 进行操作,无需定义字段类型
night98
2018-08-16 17:55:45 +08:00
这样还得给你加个缓存的策略,然后你还得配置后端生成的 api 的缓存策列,这样搞下来还不如用现有后端解决方案,哈哈。
shapl
2018-08-16 17:56:51 +08:00
我也强烈有这种需求,,,
写完前端交互,又写后端接口。。。要崩溃。。。
TommyLemon
2018-08-16 18:00:21 +08:00
@shapl
可以试试 APIJSON —— 开源的 API 自动化解决方案。
看上面 TommyLemon 的回答
agagega
2018-08-16 18:16:35 +08:00
Postgrest
qf19910623
2018-08-16 18:25:09 +08:00
这种很难实现一些复杂一点的业务,最多只能实现简单的数据展示和编辑
xiaoyanbot
2018-08-16 18:25:43 +08:00
有的, 之前有个 easy rest
TommyLemon
2018-08-16 18:30:15 +08:00
@qf19910623
主要还是因为 RESTful 的限制,对多表操作的描述不够友好。
APIJSON 就比 RESTful 强大灵活很多,还提供自动化的增删改查 API。
看上面 TommyLemon 的回答。
Cbdy
2018-08-16 18:42:17 +08:00
spring data rest 了解一下
realpg
2018-08-16 19:46:39 +08:00
springmvc 的简单开发,基本就是写配置文件 2333
ctsed
2018-08-16 19:56:32 +08:00
@TommyLemon 权限控制怎么搞
ratazzi
2018-08-16 19:58:11 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/480351

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX