`
andy_ghg
  • 浏览: 293351 次
  • 性别: Icon_minigender_1
  • 来自: 扬州
社区版块
存档分类
最新评论

REST 规则表述(第一部分)。

    博客分类:
  • REST
阅读更多
URI格式
第一:正斜杠(/)必须用来表示层级关系。

第二:正斜杠(/)不能出现在URI的结尾处。
例如:
错误的表示方式是:
http://xxxx.yyyy.com/shapes/
正确的表示方式是:
http://xxxx.yyyy.com/shapes

第三:连字符(-)是用来改善URI的可读性的
例如:http://xxxx.yyyy.com/this-is-my-first-post

第四:不要在URI中使用下划线(_)

第五:URI中应当全部使用小写字母(不包括查询参数)

第六:不要在URI中描述文件的格式
例如:
错误的表示方式是:
http://xxxx.yyyy.com/data/user.json
正确的表示方式是:
http://xxxx.yyyy.com/data/user


URI资源原型 Resource Archetypes

Document
文档资源是一个独特的概念,类似于一个对象实体,或数据库记录。以下的每个URI都标记了一个文档资源:
http://api.soccer.restapi.org/leagues/seattle
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players/mike


Store
存储是一个客户端管理的资源库。客户可以放入、取出、删除它们,例如:
PUT /users/1234/favorites/alonso

Collection
集合资源是服务器端管理的目录,客户可能会提出一个新的资源被放入到集合中。以下的每个URI都标记了一个资源集合:
http://api.soccer.restapi.org/leagues
http://api.soccer.restapi.org/leagues/seattle/teams
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players


Controller
资源模型的控制器是一个程序概念。Controller就像执行某种方法函数。例如常见的CRUD操作。以下URI描述了请求后台Controller的写法:

GET /read/245743/remark -->读取245743的描述信息
GET /read/245743/body -->读取245743的主要文字


URI 路径设计

第一:文档名称必须使用单数名词

第二:集合必须是复数名词

第三:Store的名字必须是复数名词。

第四:Controller的名称必须是一个动词或动词短语

第五:可变路径的值,应该使用基于身份认证的值(例如ID)

第六:CRUD 函数名不能出现在URI中
例如:
错误的表示方法:
GET /deleteUser?id=1234
GET /deleteUser/1234
DELETE /deleteUser/1234
POST /users/1234/delete
以上都是错误的表示方法,而正确的表示方法如下:
DELETE /users/1234

URI的查询设计

第一:一个URL应当可以过滤集合(或存储(store))
例如:
GET /users -->查询所有用户
GET /users?role=admin -->根据条件过滤用户

第二:分页查询应当单独列出来
例如:
GET /users?pageSize=25&pageStartIndex=50
POST /users/search
分享到:
评论

相关推荐

    使用WCF开发REST服务

    - **DEVHOL-300-3**:《建立您的第一个工作流应用》Level 300。 此外,微软官方文档中心和团队博客也是获取最新WCF开发资源和教程的重要渠道。通过这些资源,开发者可以持续提升自己的技能,掌握WCF开发RESTful服务...

    使用更少的样板代码、更高的一致性和对RESTAPI的支持,编写更优雅的AzureFunctions.zip

    REST(Representational State Transfer)是一种广泛采用的Web服务设计风格,它强调资源的表述和状态转移。在 Azure Functions 中,开发者通常会创建HTTP触发的函数来实现RESTful接口。"FunctionMonkey"可能提供了一...

    restapi-mongo

    在现代互联网开发中,RESTful API已经成为服务端接口设计的标准之一,它强调资源的表述性和状态转移,为客户端提供了简洁而直观的交互方式。MongoDB作为NoSQL数据库的代表,以其强大的文档型数据存储能力和高性能的...

    restserver-node

    首先,我们要理解什么是REST(Representational State Transfer,表述性状态转移)。REST是一种网络应用程序的设计风格和开发方式,基于HTTP协议,通过URL定位资源,用HTTP方法(GET、POST、PUT、DELETE等)操作资源...

    api_rest_example

    在IT行业中,API(应用程序接口)是软件系统之间交互的核心工具,REST(Representational State Transfer,表述性状态转移)是一种广泛采用的API设计风格。本示例“api_rest_example”显然是一个关于如何构建RESTful...

    SpringBootGameOfLife:使用Spring Boot的Game of Life REST API

    1. REST(Representational State Transfer)是Web服务的一种架构风格,强调资源的表述状态转移。使用HTTP协议中的方法(GET、POST、PUT、DELETE等)来操作资源。 2. Spring Boot与REST:Spring Boot通过`@...

    WEB服务_原理与技术.zip

    总结起来,WEB服务的原理和技术涉及多个层面,从基础的协议如SOAP和REST,到服务的描述语言WSDL,再到安全性和互操作性的考虑,每一个环节都是构建高效、安全和可扩展的WEB服务不可或缺的部分。理解并掌握这些知识点...

    rest-api

    REST(Representational State Transfer,表述性状态转移)是一种软件架构风格,主要用于设计网络应用程序,特别是Web服务。REST API是遵循REST原则的接口,它通过HTTP协议来通信,用于客户端和服务器之间的数据交换...

    coral_rest:用于我美妙的珊瑚业务的 RESTful API

    REST是一种架构风格,强调资源的表述和状态转移,通过HTTP协议来操作这些资源。在RESTful API中,常见的HTTP方法如GET、POST、PUT、DELETE分别对应于资源的获取、创建、更新和删除操作。 在这个“coral_rest”项目...

    Airport_Api:使用Spring BootJPAH2创建的REST API

    - **Hibernate**:是JPA的一个实现,提供更丰富的功能,如第一级和第二级缓存、 Criteria查询等。 **H2内存数据库** - **H2**:是一个轻量级、高性能的开源数据库,支持多种模式,包括内存模式,适合测试和快速原型...

    速动画教程系列第16集

    它是一种通过HTTP协议提供和使用的应用程序接口(API),可以被任何支持SOAP(简单对象访问协议)或REST(表述性状态转移)的客户端调用。 2. **Eclipse与MyEclipse**:Eclipse是广受欢迎的开源Java IDE,而...

    英语八年级下unitSectionBPPT课件.pptx

    例如,第一人称变为第三人称,第二人称可能变为第一人称或第三人称。 3. **指示代词变化**:this、these分别变为that、those;here变为there。 4. **地点变化**:now变为then,today变为that day,this week变为...

    restlet.jar

    版本号“2.1.4”表明这是Restlet框架的第2个主要版本中的第1次次要更新和第4次修正更新,通常包含了性能优化、错误修复和新功能的添加。 使用Restlet框架,开发者可以创建RESTful服务,通过组件模型来定义资源和...

    一般现在时分析及讲解.docx

    这个时态的构成特点是,对于主语是第一、二人称单数或复数,以及第三人称复数的情况,动词保持原形不变。而对于第三人称单数主语(如he, she, it或单数名词),动词需要进行相应的变形,通常是在词尾添加-s或-es。 ...

    2024java面试题题目及答案.docx

    当一个线程进入了一个对象的`synchronized`代码块或方法时,其他试图进入该对象的`synchronized`代码块或方法的线程将会被阻塞等待,直到第一个线程退出该对象的`synchronized`范围。这种机制确保了同一时刻只有一个...

    delphi +webservice安卓源码.rar

    这通常涉及SOAP(简单对象访问协议)或REST(表述性状态转移)协议,使得Android设备可以与远程服务器进行数据交换。 2. **安卓端安装**:这表明该应用是为Android操作系统设计的,用户可以在安卓设备上安装并运行...

    2021-2022计算机二级等级考试试题及答案No.3462.docx

    - **判断题**: “第一代计算机逻辑元件采用的是电子管。”正确答案为**正确**。 ### 18. 字体属性设置 - **知识点**: 在编程环境中,可以使用特定的属性来设置字体的样式,如添加删除线。 - **选择题**: 给出了四个...

    VB WEB远程控制

    Web服务通常使用SOAP(简单对象访问协议)或REST(表述性状态转移)等标准来交换数据,使得不同平台和系统间的互操作成为可能。在VB中,可以利用ASP.NET或者XML Web Services来创建和消费这些服务。 文件...

    软件工程中的系统设计与集成

    #### 第1章 软件工程概述 **1.1 什么是软件工程** 软件工程是一门将系统化、规范化、可量化的方法应用于软件开发、运行和维护的过程的学科。它涵盖了一系列活动,如需求分析、设计、编码、测试以及后续的维护工作...

Global site tag (gtag.js) - Google Analytics