初撩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的 ...
随机推荐
- div标准布局示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- window常见操作
cmd查看进程命令 nestat -aon|findstr "端口" 杀进程: taskkill /f /pid 端口号 /f参数强制杀进程 通过注册表删除桌面图标 cmd re ...
- mongoose 与 mylab 的使用 (1)
1.引入mongoose 模块 const mongoose = require('mongoose'); 2.连接数据库 //连接数据库 mongoose.connect( db, {useNew ...
- Fiji-imageJ 无法打开
可能的原因是文件的路径包含中文名称.
- 生成器模式Builder
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11406502.html 1. 定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的 ...
- 【leetcode】640. Solve the Equation
题目如下: 解题思路:本题的思路就是解析字符串,然后是小学时候学的解方程的思想,以"2x+3x-6x+1=x+2",先把左右两边的x项和非x项进行合并,得到"-x+1=x ...
- 过滤字符串中的html标签
C#中,我们有时需要过滤掉字符串中的部分html标签,以下是一些简单的html标签过滤方法,使用的主要方式是正则表达式 public static string ClearHtml(string ht ...
- php str_shuffle()函数 语法
php str_shuffle()函数 语法 str_shuffle()函数怎么用? php str_shuffle()函数用于随机的打乱字符串中所有字符,语法是str_shuffle(string) ...
- mysql数据库帐号权限设置
1.创建帐号 2.给帐号赋权限(xinjinlong帐号只有查看sakila表的权限) 3.更改密码 4.取消授权 revoke all on *.* from sss@localhost ;
- <自动化测试>之<unittest框架使用1>
要说单元测试和UI自动化之间的是什么样的一个关系,说说我个人的一些心得体会吧,我并没有太多的这方面经验,由于工作本身就用的少,还有就是功能测试点点对于我这种比较懒惰的人来说,比单元测试复杂...思考单 ...