刚上班没多久,经理让我写restful风格的接口文档,希望有朋友给一些建议.
1
babyname 2015-06-03 11:53:15 +08:00
先了解设计原则、规范,然后根据需求写吧。
|
2
learnshare 2015-06-03 11:58:05 +08:00
面向资源
|
3
blue7wings 2015-06-03 12:11:22 +08:00 via iPhone 1
http://www.ruanyifeng.com/blog/2011/09/restful.html
阮一峰的这篇页面就写得挺好,可以参考下~~ |
4
billlee 2015-06-03 12:12:13 +08:00 1
|
5
Septembers 2015-06-03 12:23:10 +08:00 via Android
设计文档之前先摸清楚业务
|
6
Ouyangan OP 我的情况是:之前是自学的java,时间大概有六个月,接口文档没有写过,所以感觉到有一些无从下手,谢谢楼上的朋友的建议.
|
7
invite 2015-06-03 13:01:05 +08:00
需求,需求。
|
8
gevin 2015-06-03 13:03:58 +08:00 2
我以前想在博客里写一下REST API设计原则的,看到下面这篇就懒得自己折腾了
https://bourgeois.me/rest/ |
9
colincat 2015-06-03 13:07:21 +08:00 1
|
10
johnnyb 2015-06-03 14:28:26 +08:00
举个例子:
``` http://~/users 用户列表 http://~/users/{id} 用户详情/编辑 http://~/users/new 新用户(news视为{id}的特殊形式) http://~/users/{id}/roles 用户权限列表(二级资源,可以继续套用RESTfull) ``` url 中不应该出现动词,对于同一个 url 例如 http://~/users/{id},通过 method (get/post/patch/put) 来区分是读/写操作 |
11
zonghua 2015-06-03 15:06:45 +08:00 via iPhone
@johnnyb 受教了,springMVC直接提供了通过目录获取参数,不知道struts2如何实现?
|
12
anyforever 2015-06-03 16:12:45 +08:00
大家API后端一般都是用什么语言开发的?
|
13
johnnyb 2015-06-03 16:30:25 +08:00
@zonghua 使用 Struts 2 开发 RESTful 服务 https://www.ibm.com/developerworks/cn/java/j-lo-struts2rest/
|
14
sing1ee 2015-06-03 16:54:56 +08:00
面向资源在实践中,只能说看上去很简单,看上去很美。但,现实很残酷,很现实。业务总是会变的越来越复杂,这个过程中,面向资源的接口会越来越混乱,逻辑不清晰,交叉比较厉害。所以,聊一聊就可以了,不用太认真。
我们使用的SpringBoot |
15
nullcc 2015-06-03 17:04:41 +08:00
阮一峰有一篇博文《RESTful API 设计指南》写得比较浅显易懂: http://www.ruanyifeng.com/blog/2014/05/restful_api.html
|
16
Feiox 2015-06-03 17:11:55 +08:00
如果写 RESTful 文档,可以尝试一下 REST 建模语言: http://raml.org/
|
17
minotaur 2015-06-04 09:33:16 +08:00
不要出现动词,使用get post put delete,浏览器兼容是个问题
|
18
qianlifeng 2015-06-30 14:53:28 +08:00
@johnnyb
``` http://~/users 用户列表 http://~/users/{id} 用户详情/编辑 http://~/users/new 新用户(news视为{id}的特殊形式) http://~/users/{id}/roles 用户权限列表(二级资源,可以继续套用RESTfull) ``` 感觉应该是: ``` http://~/users GET/用户列表 ,POST/新用户,PUT/更新 ``` 一般不用下面这种形式创建吧? ··· http://~/users/new 新用户(news视为{id}的特殊形式) ··· |
19
johnnyb 2015-07-01 12:12:25 +08:00
@qianlifeng
你是对的。我这里确实没交代清楚,举的例子应该是描述如何在浏览器地址栏呈现,对应api路径其实只有 http://~/users 一个,然后通过method来判定:POST/新用户,PUT/更新,DELETE/删除。。。 |
20
Ouyangan OP @johnnyb @qianlifeng 谢谢大家...
|