初撩RESTful
1. 什么是RESTful?
- 一种软件架构风格,设计风格,用于客户端和服务端交互类的架构。
- 一组架构约束条件和原则
2. 什么是RESTful架构?
- 客户端通过http动词(get/post等)对服务器资源进行操作,实现‘表现层的状态转换’
3. http动词(资源的具体类型):
- GET(SELECT):从服务器取出资源
- POST(CREATE or UPDATE): 在服务器创建资源或更新资源
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)
- PATCH(UPDATE): 在服务器更新资源(客户端提供改变的属性)
- DELETE(DELETE):从服务器删除资源
- HEAD:获取资源的元数据
- OPTIONS:获取信息,关于资源的那些属性是客户端可以改变的
几个关键词:
- 资源:网络上传递的具体信息(在RESTful中每个网址代表一种资源)
- 表现层:资源的多用外在表现形式
- 状态转换:数据和状态的变化(http协议是无状态的)
信息(资源)过滤(若记录数据过多,服务器不可能将他们返回给用户,api提供参数,过滤返回结果):
- ?limit=10
- ?offset=10
- ?page=2&per_page=20
- ?sortby=name&order=desc
- ?student_id=id
4. 常见状态码:
- 200 OK-[GET]:服务器成功返回用户请求的数据
- 201 CREATED-[POST/PUT/PATCH]:用户新建或修改数据成功
- 202 Accepted-[*]:表示一个请求已经进入后台排队(异步任务)
- 204 NO CONTENT - [DELETE]:表示数据删除成功
- 400 INVALID REQUEST-[POST/PUT/PATCH]:用户发出的请求有错误
- 401 Unauthorized-[*]:表示用户没有权限(令牌,用户名,密码错误)
- 403 Forbidden-[*]:表示用户得到授权,但是访问时被禁止的
- 404 NOT FOUND-[*]:用户发出的请求针对的事不存在的记录
- 406 Not Acceptable -[*]:用户请求格式不可得
- 410 Gone-[GET]:用户请求的资源被永久移除,且不会再得到
- 422 Unprocesable entity-[POST/PUT/PATCH]:当创建一个对象时,发生一个验证错误
- 500 INTERNAL SERVER EROR -[*]: 服务器内部发生错误
可能直接看上面这些会非常懵逼,所以俺找了一个比较详细的:
https://www.runoob.com/w3cnote/restful-architecture.html
https://baike.baidu.com/item/RESTful/4406165?fr=aladdin
但是我还是想用我薄弱的知识面总结一下(至于正确和错误,请多指点 ₍ᐢ •⌄• ᐢ₎):
RESTful框架呢,其实就是我们的一种开发风格,大家开发都遵循这个原则,直白的说就是web技术的前后端分离,当然我们使用这个框架这个框架肯定有它的强大之处(当然只是在我了解了一定的python Django框架中的rest_framework基础得出的丢丢结论)。
RESTful框架既然前后端是分离的就必须涉及到接口,通过接口才能把两个部分对接起来,而我们http又是目前我们前后端联系的唯一实例,所以我们RESTful通过http状态来传递前后端的数据,这里又涉及到数据的传输,目前呢我们RESTful框架就是通过json来进行数据的传输。
关键词:接口; http动词; json格式数据传输;
初撩RESTful的更多相关文章
- 初撩Django-RESTful-rest_framework序列化(将模型序列化为JSON)
官方网站: https://www.django-rest-framework.org/ 翻译网站:https://q1mi.github.io/Django-REST-framework-docum ...
- 初撩Django-RESTful-rest_framework视图函数
rest_framework中的视图函数: View函数 APIView函数 APIView的子类 mixins函数 viewsets函数 1.View函数 2.APIView函数 3.APIView ...
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- 我所理解的RESTful Web API [设计篇]
<我所理解的RESTful Web API [Web标准篇]>Web服务已经成为了异质系统之间的互联与集成的主要手段,在过去一段不短的时间里,Web服务几乎清一水地采用SOAP来构建.构建 ...
- 追踪app崩溃率、事件响应链、Run Loop、线程和进程、数据表的优化、动画库、Restful架构、SDWebImage的原理
1.如何追踪app崩溃率,如何解决线上闪退 当 iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上.crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈 跟踪信 ...
- RESTFUL接口
原文地址:http://kb.cnblogs.com/page/512047/ 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者 ...
- RESTful架构详解(转)
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...
- 文档数据库RavenDB-介绍与初体验
文档数据库RavenDB-介绍与初体验 阅读目录 1.RavenDB概述与特性 2.RavenDB安装 3.C#开发初体验 4.RavenDB资源 不知不觉,“.NET平台开源项目速览“系列文章已经1 ...
- RESTful架构详解(转)
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...
随机推荐
- go语言从例子开始之Example5.for循环
for 是 Go 中唯一的循环结构.这里有 for 循环的三个基本使用方式. package main import "fmt" func main() { 最常用的方式,带单个循 ...
- window常见操作
cmd查看进程命令 nestat -aon|findstr "端口" 杀进程: taskkill /f /pid 端口号 /f参数强制杀进程 通过注册表删除桌面图标 cmd re ...
- 阿里云安装Cloudera Manager(草稿)
选择三台同一局域网的阿里云服务器 最初使用阿里云.京东云.百度云的三台不同的服务器,遇到一些问题,没有解决,公网速度也没有保障,还是选择同一局域网的服务器吧 CM有三种不同的安装方式: 通过 Clou ...
- 【leetcode】947. Most Stones Removed with Same Row or Column
题目如下: On a 2D plane, we place stones at some integer coordinate points. Each coordinate point may h ...
- 百度链接提交主动推送 c#实现
说明:此方法适合百度站长,利用此方法可以第一时间将你的原创文章上传到百度,保护你的著作权,也可以帮你的网站进行引流 以下是代码实现: /// <summary> /// 提 ...
- 使用Ueditor点击上传图片时显示延迟的问题
最近在做一个项目,需要用到Ueditor,但是在点击上传图片的时候,总是隔了4-5秒才显示文件框 查了一些资料,最后发现,只需在 修改:(1) dialog/images/image.js 把imag ...
- vue中使用iview表单验证时this指针问题
需求 使用iview,在提交时对值b进行验证,使其不能大于值a 实现 <Form ref="config" :model="config" :rules= ...
- Service系统服务(一):安装一个KVM服务器、KVM平台构建及简单管理、virsh基本管理操作、xml配置文件的应用、为虚拟机制作快照备份、快建新虚拟机
一.安装一个KVM服务器 目标: 本例要求准备一台 RHEL7.2 服务器,将其搭建为KVM平台,主要完成下列操作: 1> 关闭本机的SELinux保护.防火墙服务 2> 挂载RHEL ...
- c#获取MAC地址和IP地址
一获取mac地址 1.先添加system.management的dll组件2.添加引用 public string GetMACAddress(){string MoAddress = "& ...
- bzoj 3881 [Coci2015]Divljak——LCT维护parent树链并
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3881 对 S 建 SAM ,每个 T 会让 S 的 parent 树的链并答案+1:在 T ...