文档章节

RESTful 接口规范

Rickxue
 Rickxue
发布于 2015/11/17 21:09
字数 615
阅读 48
收藏 0

RESTful 接口规范 

高级别的模式是:

http(s)://server.com/app-name/{version}/{domain}/{rest-convention}

 

这里,{version}代表api的版本信息。{domain}是一个你可以用来定义任何技术的区域(例如:安全-允许指定的用户可以访问这个区域。)或者业务上的原因。(例如:同样的功能在同一个前缀之下。)

 

{rest-convention} 代表这个域(domain)下,约定的rest接口集合。

 

单资源( singular-resourceX )

url样例:order/  (order即指那个单独的资源X)

  • GET - 返回一个新的order

  • POST- 创建一个新的order,从post请求携带的内容获取值。

 

单资源带id(singular-resourceX/{id} )

URL样例:order/1 ( order即指那个单独的资源X )

  • GET - 返回id是1的order

  • DELETE - 删除id是1的order

  • PUT - 更新id是1的order,order的值从请求的内容体中获取。

 

复数资源(plural-resourceX/)

URL样例:orders/

  • GET - 返回所有orders

 

复数资源查找(plural-resourceX/search)

URL样例:orders/search?name=123

  • GET - 返回所有满足查询条件的order资源。(实例查询,无关联) - order名字等于123的。

 

复数资源查找(plural-resourceX/searchByXXX)

URL样例:orders/searchByItems?name=ipad

  • GET - 将返回所有满足自定义查询的orders - 获取所有与items名字是ipad相关联的orders。

 

单数资源(singular-resourceX/{id}/pluralY)

URL样例:order/1/items/ (这里order即为资源X,items是复数资源Y)

  • GET - 将返回所有与order id 是1关联的items。

 

singular-resourceX/{id}/singular-resourceY/

URL样例:order/1/item/

  • GET - 返回一个瞬时的新的与order id是1关联的item实例。

  • POST - 创建一个与order id 是1关联的item实例。Item的值从post请求体中获取。

 

singular-resourceX/{id}/singular-resourceY/{id}/singular-resourceZ/

URL样例:order/1/item/2/package/

  • GET - 返回一个瞬时的新的与item2和order1关联的package实例。

  • POST - 创建一个新的与item 2和order1关联的package实例,package的值从post请求体中获得。

 

上面的规则可以在继续递归下去,并且复数资源后面永远不会再跟随负数资源。

总结几个关键点,来更清晰的表述规则。

  • 在使用复数资源的时候,返回的是最后一个复数资源使用的实例。

  • 在使用单个资源的时候,返回的是最后一个但是资源使用的实例。

  • 查询的时候,返回的是最后一个复数实体使用的实例(们)。


本文转载自:

共有 人打赏支持
Rickxue
粉丝 5
博文 43
码字总数 16647
作品 0
程序员
私信 提问
基于工程经验的『RESTful接口设计规范』

前言 这篇文章,主要想总结自己在设计RESTful API的一系列经验于思考。 有些规范可能与标准规范有所出入,但是所有的考量都是基于『减少重复工作,增加可读性可维护性』而出发的。话说回来,...

浮生若梦的编程
2018/10/30
0
0
rest restful-api

前言 rest是Representational State Transfer的简称,直译过来就是:表述性状态转移(什么鬼?)。 rest这个概念出自美国的一位博士的论文,讲到rest的章节地址在这里:http://www.ics.uci.edu/...

ITgecko
2018/04/26
0
0
技术交流

代码注释、命名规范 代码目录结构定义 数据库表名命名规范 接口签名规则定义 基本工具类的封装 开发工具定义 restful规范定义,接口规范定义 代码git管理规范,分支命名规范

霍保冲
2016/04/28
2
0
分布式系统的那些事儿(六) - SOA架构体系

有十来天没发文了,实在抱歉!最近忙着录视频,同时也做了个开源的后台管理系统LeeCX,目前比较简单,但是后续会把各类技术完善。具体可以点击“原文链接”。 那么今天继续说分布式系统的那些...

风间影月
2017/09/12
0
0
zzq0324/restful-tester

#restful-tester ##项目说明 目前大部分的restful接口测试工具,仅仅停留在验证接口响应是否正常,具体的业务是否正确需要靠人工来分析。人工分析势必比较耗时,而且随着项目的迭代,重复工作...

zzq0324
2016/10/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java单例模式学习记录

在项目开发中经常能遇见的设计模式就是单例模式了,而实现的方式最常见的有两种:饿汉和饱汉(懒汉)。由于日常接触较多而研究的不够深入,导致面试的时候被询问到后有点没底,这里记录一下学习...

JerryLin123
昨天
3
0
VSCODE 无法调试

VSCODE 无法调试 可以运行 可能的原因: GCC 的参数忘了加 -g

shzwork
昨天
4
0
理解去中心化 稳定币 DAI

随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器。 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机制,真的有一点复杂。耐心看完...

Tiny熊
昨天
4
0
5.线程实现

用于线程实现的Python模块 Python线程有时称为轻量级进程,因为线程比进程占用的内存少得多。 线程允许一次执行多个任务。 在Python中,以下两个模块在一个程序中实现线程 - _thread 模块 th...

Eappo_Geng
昨天
6
0
ServiceLoader

创建一个接口文件在resources资源目录下创建META-INF/services文件夹在services文件夹中创建文件,以接口全名命名创建接口实现类 内容me.zzp.ar.d.PostgreSQLDialectme.zzp.ar.d.Hype...

Cobbage
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部