何为Restful?

2024-05-12 03:18
文章标签 restful 何为

本文主要是介绍何为Restful?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概念

RESTful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。

REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力,更好地使用现有Web标准中的一些准则和约束。

常见的HTTP状态码

200(“OK”):响应成功。

301(“Moved Permanently”): 资源的URI已更改

404 (“not found”): 资源不存在

409(“Conflict”): 当客户端试图执行一个”会导致一个或多个资源处于不一致状态“的操作时,发送此响应代码。

500(“Internal Server Error”): 服务器内部错误。

503 (“Service Unavailable”): 服务当前无法处理请求

Restful API 与 传统API之间的区别

操作传统 API (对应HTTP请求方式)Restful API (对应HTTP请求方式)
新增/user/create (POST)/user (POST)
删除/user/delete?uid=1 (GET)/user/1 (DELETE)
修改/user/update (POST)/user (PUT)
查询/user/query?uid=1 (GET)/user/1 (GET)

①传统的API的URL描述是一种请求行为;Restful API的URL描述的是资源(配合HTTP请求方式描述行为);
②传统的API ,它的HTTP状态码不论请求失败或是成功没有区别,依据响应报文判断;而Restful API,它的HTTP状态码表示不同的结果(例如500,200,502).
③传统的API可通过键值对,URL请求参数传递数据;Restful API主要通过json传递数据。

Restful的一些设计技巧

  • 使用 _ 或 - 来让URI可读性更好
    曾经Web上的URI都是冰冷的数字或者无意义的字符串,但现在越来越多的网站使用 _ 或 - 来分隔一些单词,让URI看上去更为人性化。 例如user/1/study-plan

  • 使用/来表示资源的层级关系
    例如 /department/1/users 就表示了一个多级的资源, 指的是ID为1的部门下的所有用户,又例如 /orders/2012/10 可以用来表示2012年10月的订单记录。

  • 使用?用来过滤资源
    很多人只是把?简单的当做是参数的传递,很容易造成URI过于复杂、难以理解。可以把?用于对资源的过滤, 例如/users用来表示所有用户,而/users?state=enabled用来表示所有启用的用户, 这种URL通常对应的是一些特定条件的查询结果或算法运算结果。

  • , 或 ; (可替换为惯用的符号) 可以用来表示同级资源的关系
    有时候我们需要表示同级资源的关系时,可以使用,或;来进行分割。例如哪天github可以比较某个文件在随意两次提交记录之间的差异,或许可以使用user/1;2作为URI。

一些不符合Restful风格的URL示例

HTTP请求方式不符合符合
GET/user/getUser/1/user/1
DELETE/deleteUser/1/user/1
GET/department/getUsersByDepartmentId/1/department/1/users

这篇关于何为Restful?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981451

相关文章

Restful API 原理以及实现

先说说API 再说啥是RESRFUL API之前,咱先说说啥是API吧。API大家应该都知道吧,简称接口嘛。随着现在移动互联网的火爆,手机软件,也就是APP几乎快爆棚了。几乎任何一个网站或者应用都会出一款iOS或者Android APP,相比网页版的体验,APP确实各方面性能要好很多。 那么现在问题来了。比如QQ空间网站,如果我想获取一个用户发的说说列表。 QQ空间网站里面需要这个功能。

[情商-13]:语言的艺术:何为真实和真相,所谓真相,就是别人想让你知道的真相!洞察谎言与真相!

目录 前言: 一、说话的真实程度分级 二、说谎动机分级:善意谎言、中性谎言、恶意谎言 三、小心:所谓真相:只说对自己有利的真相 四、小心:所谓真相:就是别人想让你知道的真相 五、小心:所谓善解人意:就是别人只说你想要听到的话 前言: 何为真实和真相,所谓真相,就是别人想让你知道的真相!洞察谎言与真相! 人与人交流话语中,处处充满了不真实,完全真实的只是其中一小部分,这

5-Kylin Java Restful API

最近在做大数据方面的开发, 学习研究了一段时间的kylin系统, 对于前端开发需要使用 RESTful API ,但是官网并没有提供详细的Java  API. 经过几天的看文档,最终写出了 Java 的API,不敢私藏,特分享与大家. 1 import java.io.BufferedReader;2 import java.io.InputStream;3 import jav

关于 spring RestTemplate restful

API 地址:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html 客户端 spring xml 转换器配置:   <bean id="ky.requestFactory" class="org.springframework.http.cl

java利用Jersey创建RESTful service

http://www.toutiao.com/a6346735102701289729/?tt_from=mobile_qq&utm_campaign=client_share&app=explore_article&utm_source=mobile_qq&iid=5840657922&utm_medium=toutiao_ios

springMVC的URL的RestFul用法

SpringMVC的URL的RestFul用法 普通的URL网址是 http://localhost:8080/add?method= a 大概就是这样 很不安全 RestFul的是URl的网址显示为 http://localhost:8080/add/1/2 客户看起开都不知到是啥 很安全 默认的是GET请求 public class RestFulController {@R

第十四节:学习Springboot 的restful接口风格(自学Spring boot 3.x的第三天)

这节记录下自己学习restful的记录。 增(PostMapping) /*** 保存学生* @return*/@PostMappingpublic Student save(@RequestBody Student student){studentService.save(student);return student;} 注意:传参使用RequestBody 删(DeleteM

浅谈维度建模、数据分析模型,何为数据仓库,与数据库的区别

往期推荐 大数据HBase图文简介-CSDN博客 数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS-CSDN博客 数仓常见名词解析和名词之间的关系-CSDN博客 数仓架构:离线数仓、实时数仓Lambda和Kappa、湖仓一体数据湖-CSDN博客 0. 前言 1991年,数据仓库之父 比尔·恩门 著书《Building the DataWarehouse》,要求构建数据仓

Spring boot 中使用swagger-ui实现 restful-api

步骤一:在pom文件中添加如下依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.5.0</version></dependency><dependency> <groupId>io.springfox</g

Flask---RESTful使用

快速入门资源路由Endpoints数据格式化完整示例 整理于 Flask-RESTful官网 快速入门 from flask import Flaskfrom flask_restful import Resource, Apiapp = Flask(__name__)api = Api(app)class HelloWorld(Resource):def get(