作者thefattiger (LawTea)
看板Soft_Job
标题[请益] 所以,到底什麽是RESTful API?
时间Mon Mar 11 12:33:56 2019
因为Web_Design板满冷清的所以来这边问
若不适当请告知
小弟不是Web领域的, 但也难免会碰到相关的东西
常听到写Web App的人会讲到这个名词
但查了一下资讯却还是摸不着头绪
估狗RESTful API 大概都是讲到一下几点
1.资源要用URL表示
这不是本来就这样的吗?
还是指别滥用query string?
关於query string与RESTful实在众说纷纭, 查了很久也找不到令人信服的答案
2.Server要回传对应的Http Status Code
这不是也本来就这样的吗?
3.用GET/POST/PUT等动词表达对资源的操作
意思是说, 本来只有GET/POST用法, 但其实还有PUT/PATCH/DELETE等等
应该要善加利用这些动词把操作分得更清楚?
4.Stateless
这也很常看到,但Http不是本来就Stateless的吗?
要记录state一般不都借助於session和cookie?
还是不RESTful的Api会有某种state?
5.资源传递的格式
这部分似乎不在RESTful的范围,可以是json也可以是XML
有Web领域的前辈可以指点一下吗?
RESTful真的很神秘, 问身边的人每个认为的重点都不太一样
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.45.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1552278838.A.078.html
1F:推 neo5277: 根据那八个动词要什麽给你什麽 03/11 12:35
2F:→ dreamnook: 一种写法 03/11 12:44
我的问题主要是,这些东西不是Http本来就有的吗?
还是RESTful的重点就是不要做Http规范以外的行为?
※ 编辑: thefattiger (125.227.45.150), 03/11/2019 12:49:14
4F:→ dreamnook: 就当作一种写法让api更清楚简洁吧O.O 03/11 13:01
5F:→ alan3100: 好写易懂易串接 03/11 13:05
6F:嘘 crossdunk: 本来就要 然後咧 ? 要叫做什麽 03/11 13:05
7F:→ crossdunk: 成功的人本来就会比较容易受到注意,那干嘛还出一个名 03/11 13:06
8F:→ crossdunk: 词叫做生存者偏差 03/11 13:06
9F:→ DrTech: 年轻人太多吧。古早时代的web URL或Http methods , 还真的 03/11 13:06
10F:→ DrTech: 是大家乱用一通。 03/11 13:06
11F:嘘 deray: 你的google是不是坏掉了? 03/11 13:11
12F:推 alihue: RESTful 只是一种规定,让原本大家天花乱坠的设计有一个最 03/11 13:16
13F:→ alihue: 基本可依循的规则。没有什麽新技术是没错 03/11 13:16
14F:→ AndCycle: 上古时代是 http://网址/五四三?qwhat=我想干嘛就干嘛 03/11 13:17
15F:→ alihue: 举个例子,有人用 get 去删除资料 03/11 13:17
所以推广RESTful的用意是让是基於Http的api回归到应有的样子
这样我就能理解了,感谢各位
不然一直google只看到一些Http的东西, 也不知道重点是啥
※ 编辑: thefattiger (125.227.45.150), 03/11/2019 13:24:12
16F:推 iiiii: 就是面试官喜欢的,真心不骗,kernel里面一堆get也没人敢嘘 03/11 13:23
17F:→ iiiii: Linus 03/11 13:23
18F:推 iceonly: 假设东西找不到,你的回应是什麽?你没权限要求这东西, 03/11 14:02
19F:→ iceonly: 又要回应什麽?要CRUD某个资源,你URL名字要怎麽设计? 03/11 14:02
20F:→ iceonly: 没去读restful规范只会设计出一堆奇怪api,你以为RESTFUL 03/11 14:05
21F:→ iceonly: 其实一点也不RESTFUL 03/11 14:05
22F:→ pttworld: 你去比较SOAP和RESTful差别就好了 03/11 14:09
23F:推 bibo9901: 你发现精要了,restful就是随个人喜好实现 03/11 14:29
24F:→ bibo9901: 你就算从来不知道RESTful这个字, 设计出的API也差不多这 03/11 14:30
25F:→ bibo9901: 个样子. 但是HTTP API这个词太不潮了, 於是就有一个人把 03/11 14:32
26F:→ bibo9901: 一些惯例或小技巧称之为REST. 就像design pattern一样. 03/11 14:33
27F:推 ken83924: 推B大见解 03/11 14:37
28F:推 srxrrr: 推这篇与B大解释 我一开始看restful也是满头问号 03/11 14:49
29F:→ srxrrr: 不就跟HTTP API一样的东西吗XD 03/11 14:50
30F:推 superpai: 你可以跟GraphQL 比较就知道蛮多点不是「本来就这样」 03/11 14:52
32F:→ fayhong: 里头有一篇讲 ROA 架构的,根基就是 ReSTful 03/11 15:03
33F:→ fayhong: 建议先读看看,只是翻译不太通顺,我看了两三遍,还看了 03/11 15:04
34F:→ fayhong: 原文作者其他文章才厘清楚原作者要表达的是什麽 03/11 15:04
35F:推 richard07250: 其实原po讲的那些 "理所当然"的东西 很多就是restfu 03/11 15:26
36F:→ richard07250: 规定的 03/11 15:26
37F:推 SFMAndroid: 因为只讲API人家不一定知道你是指SOAP还是REST吧 03/11 16:32
38F:→ dreamnook: 用过SOAP就知道肥皂很难捡…QQ 03/11 16:38
39F:推 jack0204: 就像Coding style的一个东西 03/11 17:01
40F:推 lemon651: 你觉得很理所当然的东西是因为现今大家都照这个风格写AP 03/11 17:44
41F:→ lemon651: I 03/11 17:44
43F:推 transforman: 推个 03/11 19:31
46F:→ oopFoo: 其实就用graphql好了。要写对restful要花一点时间。 03/11 19:52
47F:→ TakiDog: GET 删除 GET 登入 天rrr 03/11 19:52
48F:推 shortoneal: 没有本来就这样啊,以前接别人device api,一个GET打 03/11 20:08
49F:→ shortoneal: 天下呢 03/11 20:08
50F:→ five07: restful 不是规定,是概念和风格,第一点 url 资源的概念 03/11 22:19
51F:→ five07: ,并没有本来就这样,随便找都是群魔乱舞的命名 03/11 22:19
52F:→ kokal: HTTP standard有定,可是没多少人会去把HTTP standard看完呀 03/11 22:49
54F:推 senjor: 应该说很多人都把RESTful当成单纯的反射性API在用 03/12 08:56
55F:推 lgates: 推个 找google完我也是想问 阿不就这样.. 03/12 18:50
56F:推 marsyang1: 推肥皂真的很难捡,会捡到翻脸 03/12 19:39
57F:推 mdkn35: 一个抽象 需要被实现 03/12 19:49
58F:推 questionboy: 就另一种架构而已 03/13 14:46