整理-restful风格-URI设计可以遵循的10条原则

什么是RESTful接口风格 本文将为您介绍RESTful的基本概念、设计原则以及实际应用中的一些技巧。通过本文,我们深入了解了RESTful接口风格的基本概念、设计原则以及一些实际应用的技巧。如果有任何问题或建议,欢迎在评论区留言。RESTful接口应该是统一的,资源的标识、资源的操作方式等都应该符合一致的设计原则。使用HTTP状态码来表示请求的结果,例如200表示成功,404表示未找到资源等。URI应该简洁、直观,使用名词表示资源,使用HTTP方法表示对资源的操作。资源是RESTful设计的核心,每个资源都有一个唯一的标识符。 阅读详情

restFul理论知识

  • " 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构"。
  • “REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例”
  • “要让一个资源可以被识别,需要有个唯一标识,在Web中这个唯一标识就是URI(Uniform Resource Identifier)。URI既可以看成是资源的地址,也可以看成是资源的名称。”
  • “URI的设计应该遵循可寻址性原则,具有自描述性,需要在形式上给人以直觉上的关联。”

URI设计的一些原则

  • 如何才能让"URI的设计应该遵循可寻址性原则,具有自描述性,需要在形式上给人以直觉上的关联"呢?最基本,可以把握如下原则

1. post、get、put、delete包含不同的含义。

方式含义
POST首次创建
GET获取
PUT更新
DELETE删除

2.post、get、put、delete的构成了资源CRUD。

方式操作
POSTC
GETR
PUTU
DELETED

3.uri中可以不用出现save、delete、update、findAll等关键字,只需要合理使用不同请求法方式即可。

传统:http://localhost:8080/user/save
REST:http://localhost:8080/user POST 执行保存

传统:http://localhost:8080/user/delete?id=1
REST:http://localhost:8080/user/1 DELETE 执行删除

传统:http://localhost:8080/user/update?id=1
REST:http://localhost:8080/user/1 PUT 执行更新 1就是id

传统:http://localhost:8080/user/findAll
REST:http://localhost:8080/user GET 查所有

4.路径本身就可以传递参数,不用一定需要?key=value形式

传统:http://localhost:8080/user/delete?id=1
REST:http://localhost:8080/user/1 DELETE 执行删除

5._或-来让URI可读性更好

越多的网站使用_或-来分隔一些单词,让URI看上去更为人性化。 例如国内比较出名的开源中国社区,它上面的新闻地址就采用这种风格, 如http://www.oschina.net/news/38119/oschina-translate-reward-plan

6.使用/来表示资源的层级关系

https://github.com/git/git/commit/e3af72cdafab5993d18fae056f87e1d675913d08

就表示了一个多级的资源, 指的是git用户的git项目的某次提交记录,又例如/orders/2012/10可以用来表示2012年10月的订单记录。

7.?用来过滤资源

/pulls?state=closed用来表示git项目中已经关闭的推入请求, 这种URL通常对应的是一些特定条件的查询结果或算法运算结果。

8.,或;可以用来表示同级资源的关系

哪天github可以比较某个文件在随意两次提交记录之间的差异,或许可以使用/git/git /block-sha1/sha1.h/compare/e3af72cdafab5993d18fae056f87e1d675913d08;bd63e61bdf38e872d5215c07b264dcc16e4febca作为URI。

9.版本号可以在HTTP请求头信息的Accept字段中进行区分

http://www.example.com/app/foo

不同版本请求头

Accept: vnd.example-com.foo+json; version=1.0
Accept: vnd.example-com.foo+json; version=1.1
Accept: vnd.example-com.foo+json; version=2.0

# 10.uri不包含动作

URI包含动词(正确的写法是把动词transfer改成名词transaction),因为post本生就包含具体的动作。

错误:
POST /accounts/1/transfer/500/to/2
正确:
POST /accounts/1/transaction/500/to/2

同样如下也是错误的

GET /getUser/1
POST /createUser
PUT /updateUser/1
DELETE /deleteUser/1

参考:https://www.runoob.com/w3cnote/restful-architecture.html

java的restful风格的理解与实践 REST(Representational State Transfer,表述性状态转移)是一种架构风格,用于设计网络应用程序的 API。REST 提倡使用简单的 HTTP 协议,通过一组无状态的操作来操作资源。资源是指系统中的实体,可以通过 URI(统一资源标识符)来标识。RESTful API 通过标准的 HTTP 方法(如 GET、POST、PUT、DELETE 等)来对资源进行操作。本文介绍了 RESTful API 的基本概念和原则,并使用 Java 和 Spring Boot 构建。 阅读详情

相关推荐

别再只用GPS了!用Android手机传感器实现室内步行轨迹记录(避坑指南)

本文详细介绍了如何利用Android手机传感器(如加速度计、陀螺仪和磁力计)实现室内步行轨迹记录,克服GPS在室内的局限性。通过传感器数据采集、步态检测、航向估计和轨迹绘制等步骤,结合避坑指南和优化技巧,帮助开发者高效构建室内定位应用。

weixin_26821003的博客 274

面试官:你连RESTful都不知道我怎么敢要你?

干货,2019 RESTful最贱实践

dotNet全栈开发 17万+

莆田市C++专项选拔第一轮题4

现在小明同学想要从两堆硬币中各选择一枚硬币,使得两枚硬币的面值之和 不超过 k。不同的硬币组合,就算面值相同,也视为不同的方案。现在他把这些硬币分成了两堆,已知两堆硬币分别有 n 和 m 枚硬币。可选方案有: (1,2), (1,1), (1,1), (5,2), (5,1), (5,1),共 6 种。第一行三个整数 n, m, k,分别表示第一堆硬币的数量,第二堆硬币的数量,以及面值之和的上限。对于30%的数据,1 ≤ n , m ≤ 1000 , 1 ≤ b , c ≤ 1000。

lpstudio的博客 925

URI设计原则,你设计的API做到了么?

咱们设计的REST API真的nice么?优雅型:http://api.exapmle.com/louvre/da-vinci/mona-lisa 卢浮宫/达芬奇/蒙娜丽...

shenjian58的博客 510

Visual MODFLOW Flex 6.1新手入门:从数据导入到3D建模的完整工作流解析

本文为Visual MODFLOW Flex 6.1新手提供了从零开始构建地下水数值模型的完整工作流指南。详细解析了从项目规划、数据准备与导入,到构建三维概念模型、生成并运行数值模型,直至结果可视化与校准的核心步骤。帮助水文地质与环工领域初学者快速掌握这一专业软件,高效完成从数据到三维建模的全过程。

a1b2c的博客 809

Restful定义,接口设计原则及优点

1、什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到...

yy的博客 1867

从0到1打造工业级上位机:通信协议到架构设计的实战全流程

作为一名在工控领域摸爬滚打十余年的开发者,前阵子刚帮一家新能源工厂完成了一套工业上位机系统的从0到1搭建。从最初和PLC通信联调时的“连不上、传错数”,到最终系统7×24小时稳定运行,踩过的坑、攒下的实战经验,今天就毫无保留地拆解给各位同行。这篇文章会从通信层、数据层、UI层到架构层逐层深入,全是工业现场验证过的干货,新手也能跟着落地。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 667

什么是RESTful API?它的设计原则是什么?

什么是RESTful API?它的设计原则是什么?

商务合作欢迎私信我 2万+

SAP 针对不同行业(制造业、零售业、金融业)推出了专属的云解决方案,以下是各行业的核心方案与特点

SAP推出行业专属云解决方案:制造业(SAP Digital Manufacturing Cloud)提供AI排产与质量预警,降低缺陷率;零售业(S/4HANA Cloud零售版)实现AI预测补货与全渠道库存同步,减少浪费;金融业(Business ByDesign)支持合规自动化与实时风控,降低审计成本。各方案均采用云原生架构,典型案例显示实施效果显著。

金牌架构师 494

高通SDX12:ProSLIC Si32185移植调试

高通 SDX12 语音芯片slic 音频驱动 Si32185

不秃头的程序猿Gabriel的博客 2038

REST五个关键原则

统一接口:通过将实现与其提供的服务解耦来简化架构。这意味着应在所有资源中统一使用相同的操作(GET、POST、PUT、DELETE)。 无状态交互:请求之间服务器上不存储任何客户端上下文。从客户端到服务器的每个请求都必须包含理解和完成该请求所需的所有信息。 客户端-服务器架构:通过分离关注点,该模型通过简化服务器组件提高了用户界面跨多个平台的可移植性和可扩展性。 分层系统:客户端请求可能会经过多层中间服务器(如代理或网关),这些服务器提供负载平衡、共享缓存或加密等附加功能。 按需代码(可选):服

2301_79564718的博客 373

VSCode 中搭建 Python 开发环境

**验证安装**:打开终端(CMD/PowerShell/终端),输入 `python --version`(Windows)或 `python3 --version`(macOS/Linux),显示版本号即成功。- **下载地址**:[Python 官网](https://www.python.org/downloads/)(选择对应系统的最新稳定版,推荐 3.8+)- **调试**:通过 `launch.json` 配置,设置断点后按 `F5` 启动,使用 `F10/F11` 控制流程。

寒寒豆豆软件公司的博客 2540

Restful 风格API设计原则及Restful介绍

Restful API 设计原则 前言 网络应用程序分为前端和后端两个部分。 当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备……),这也就意味着前端的开发代码、开发框架变得多种多样。因此,必须有一种统一的机制,方便不同的前端代码与后端进行通信。 这就导致了API构架的流行。REST是目前比较成熟的一套互联网应用程序的API设计理论。 它可以降低开发的复杂度,提高...

龙ygl龙的博客 867

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

restful风格个人理解

之前有很多人问我面我restful方面的知识,我虽然知道是一种风格,项目中也是一直使用restful的格式进行编码,但是实际上我对restful这个概念没有真正系统的整理,那么就来说下restful风格。 restful中的REST是Representational State Transfer的缩写,即表现状态变化。这么说感觉还是有点悬乎。那么参考网上对Rest架构的主要原则说明是: 网络上...

u012146058的博客 5052

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【 设计规范】 RESTful API详解

系列综述:💞目的:本系列是个人整理为了学习的,整理期间苛求每个知识点,平衡理解简易度与深入程度。🥰来源:材料架构主要源于GPT进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。🤭结语:如果有帮到你的地方,就和!!

qq_43840665的博客 2068

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

RESTFul 风格的API

RESTFul 风格的API 一、什么是RESTFul RESTful是基于http方法的API设计风格而不是一种技术。可以说使用这种设计风格我们看到url就知道要什么样的资源、看到http method就知道要针对资源干什么、看到http的 status code就知道结果是什么。使用RESTFul风格的api规范了程序员的代码开发,为前后端的交互减少了接口交流的口舌成本。 二、RESTFul风...

B站搜索 馆主君晓 欢迎关注~ 565

Rest风格(概念+实现)

写在前面: 这是我之前为了学习REST风格,查了几篇大佬的博客再结合自己理解写下来的笔记,之前很少写博客都是写笔记,现在准备整理笔记后多多写博。 因为时间挺久,所以忘记了是查阅了哪些大佬们的博客,如果读者们知道是哪些博主的博客,麻烦告诉我,我会添加查阅链接,肥肠抱歉! 参考博客链接: REST什么是 即 Representational State Transfer(资源状...

小咸白鱼的博客 884

整理restful架构详细介绍

Restful 架构漫谈1、什么是REST2、理解RESTful资源与URI下面让我们来看看URI设计上的一些技巧: 1、什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到...

徊忆羽菲 335

设计一套好的RESTful API

写在前面的话看了一下博客目录,距离上次更新这个系列的博文已经有两个多月,并不是因为不想继续写博客,由于中间这段时间更新了几篇其他系列的文章就暂时停止了,如今已经讲述的差不多,也就继续抽时间更新《Spring+SpringMVC+MyBatis+easyUI整合》这个系列了。 也看到github上有人催更教程,这个真的是没想到,也谢谢你们的肯定和支持了。由于《整合优化篇》中关于代码优化及数据层优化的

程序员有故事 4361

RESTful API知识整理

不是标准,是设计风格 REST(英文:Representational State Transfer,简称REST),通常应用在web应用程序中,提供一套满足特定的约束和原则的接口,用于客户端和服务器交互。REST并没有一个明确的标准,而更像是一种设计的风格。 来源于一篇论文 Roy Felding 在他论文 network based software architectures 中首...

lucasma的博客 4912

RESTful架构详解

场景:因为自己做的后台,一直为前端提供接口,一直知道用的是restful框架,可是没有深入理解,先整理如下。 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:“我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强.

DreamSun的博客 2496

Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API

写在前面的话 看了一下博客目录,距离上次更新这个系列的博文已经有两个多月,并不是因为不想继续写博客,由于中间这段时间更新了几篇其他系列的文章就暂时停止了,如今已经讲述的差不多,也就继续抽时间更新《Spring+SpringMVC+MyBatis+easyUI整合》这个系列了。 也看到github上有人催更教程,这个真的是没想到,也谢谢你们的肯定和支持了。 由于《整合优化篇》中关于代码优...

Elinor2017的博客 329

restful url 设计规范_Restful API设计规范

RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。RESTFUL特点包括:1、每一个URI代表1种资源;2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行...

weixin_39600510的博客 127

RESTful详细整理介绍(来源、原则、最佳实践)

文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接口4.一致的数据格式4.系统分层5.可缓存6.按需编码、可定制代码(可选)03 RESTful的7个最佳实践1. 版本2.参数命名规范3.url命名规范4. 统一返回数据格式5. http状态码6. 合理使用query parameter7. 多表、多参数连接查询如何设计URL 01 ...

文武傲群雄,彳亍定江山 880
上一篇: 整理-前端常见命令
下一篇: JavaEE-面试-说说集群-1
billycoder
博客等级 码龄17年 171粉丝 188原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值