Restful Web服务如何设计

Rest基于Roy Thomas Fielding博士论文

中文翻译

原版论文

从下面几个方面来设计一个好的restful web服务

  • 识别资源
  • 选择合适的资源粒度
  • 设计 URI
  • 选择合适的 HTTP ⽅法和返回码
  • 设计资源的表述

1.识别资源

  • 找到领域名词 :
           能⽤ CRUD 操作的名词. 比如用户,账户
  • 将资源组织为集合(即集合资源)
           将资源组合到一起,比如用户集合
  • 将资源合并为复合资源
            将用户和账户组合
  • 计算或处理函数
    使用资源计算处理逻辑

2.选择合适的资源粒度

服务端的⻆度

  • ⽹络效率  
  • 表述的多少: 一次请求中表达更多的事情
  • 客户端的易⽤程度: 怎么整合资源给客户端

客户端的⻆度

    • 可缓存性:当前数据是否课缓存

    • 修改频率:当前数据修改频率是否高

    • 可变性:数据是否可以修改

3.设计 URI

构建URI的一些规则

  • 使⽤域及⼦域对资源进⾏合理的分组或划分
  • 在 URI 的路径部分使⽤斜杠分隔符 ( / ) 来表示资源之间的层次关系
  • 在 URI 的路径部分使⽤逗号 ( , ) 和分号 ( ; ) 来表示⾮层次元素
  • 使⽤连字符 ( - ) 和下划线 ( _ ) 来改善⻓路径中名称的可读性
  • 在 URI 的查询部分使⽤“与”符号 ( & ) 来分隔参数
  • 在 URI 中避免出现⽂件扩展名 ( 例如 .php,.aspx 和 .jsp )

4.选择合适的 HTTP ⽅法和返回码

URI

Http Method

 description

/user/

GET

获取全部用户信息

/user/

POST

添加新的用户信息

/user/{id}

GET

获取特定用户信息

/user/{id}

DELETE

删除特定用户信息

/user/{id}

PUT

修改特定用户信息

5.设计资源的表述

每个接口返回不同的表述类型,常用的表述类型有:

JSON,XML,HTML,ProtoBuf.

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FantasyBaby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值