作者brucetu (sec)
看板Soft_Job
标题Re: [请益] 所以,到底什麽是RESTful API?
时间Tue Mar 12 15:56:24 2019
没想到RESTful吸引这麽多人讨论
看来RESTful真的是一个概念各种表述
小弟刚接触RESTful的时候
曾经很热血的把一百多支API从只有post/get改成RESTful
改完之後有些人觉得好 有些人觉得无所谓
也有人觉得一律POST 这样client实作最方便 只要能用就好
後来我遇到一个例子
要提供API搜寻文章历史纪录 可选的输入栏位有N种
url可能长这样
ooxx.com/posts/query?writerNameKeyword=..&minRate=..&maxRate=..
假设还有浏览数/发文日期/国家杂七杂八的可选输入栏位
因为是可选所以也不适合用posts/{country}/query?
日期 浏览数这类的栏位看起来也是放在querystring比较好
最後整个url就超级长
虽然SPA设计不会让这串url出现在浏览器网址
但是看到这串这麽长还是会觉得很怪
这时候就很想用POST把参数都放body 小组讨论後也觉得这样比较好
各位觉得呢?
後来其他系统我也不再坚持query一定要用GET了
顺带一提 最近发现虾皮购物前端呼叫的api也改成不是restful了..
v2版本的下架商品是PUT , 把整个商品资料json带入 status改成8
删除商品是 DELETE products/{id}
v3版本entry变成 update_product 跟 delete_product
verb都是POST
以前在开发也经常为了RESTful命名花很多时间
甚至还要跟小组讨论 或是有人写出不是RESTful的时候还要重写
最後APP开发者串接还是要看文件才行
只是看到RESTful的接口可能觉得很乾净 用起来有一种爽度
但是文件不说明你还是不会知道这支API所有的细节
反应到开发成本上 坚持完全RESTful的设计 我是没有感觉到优势
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.137.82.149
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1552377387.A.CFC.html
1F:→ moom50302: 每个人都要有概念,Restful才有优势,不然光是理解就 03/12 16:22
2F:→ moom50302: 花更多时间了 03/12 16:22
3F:→ dreamnook: 学习过程中我对restful最大误解是要抛弃querystring 03/12 16:29
4F:→ dreamnook: 但实际上没有要求抛弃的样子 忘了从哪传来的 03/12 16:29
5F:推 othree: 因为没 querystring 最漂亮吧,其实这些问题也是现在 03/12 17:32
6F:→ othree: GraphQL 的由来 03/12 17:32
7F:→ blues520520: 查到有要符合HATEOAS 才可以叫RESTful? 03/12 19:10
8F:推 tz5514: query string用在optional parameters 但是还是解决不了 03/12 20:21
9F:→ tz5514: 栏位大量排列组合的问题 所以才需要GraphQL 03/12 20:21
10F:→ y3k: 初学者都会认为直接POST最快最稳 但是有一些隐性的问题跟劣势 03/12 21:28
11F:→ y3k: 写久还是把Http Method跟Code搬出来比较严谨 03/12 21:29
12F:推 srwhite: 我也有这问题 查询条件多的时候大家都怎麽弄 03/13 13:43
13F:→ pttuser2266: Post 不能 cache by url , 用 Get + query string 03/14 09:53
14F:→ pttuser2266: 比较好 03/14 09:53
15F:→ brucetu: 曾经开发的APP都会被测试PO文另一支手机重整马上看到 03/14 23:08
16F:→ brucetu: 如果cache导致没有收到新资料 老板不接受 03/14 23:09
17F:推 benjamin99: 回楼上,那你可能要问你老板愿意为这个零时差的即时 03/16 22:15
18F:→ benjamin99: 性付出多少钱吧 03/16 22:15