初撩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的 ...
随机推荐
- 过滤器为JSP文件生成静态页面
用过滤器为JSP文件生成静态页面,这只是一个简单的实例,客户端浏览器第一次请求JSP页面时,服务器将生成对应的HTML文件,以后访问同一JSP文件,将转为访问生成的HTML文件.一.过滤器 packa ...
- python3.x filter,map,reduce浅析
#map用法: #传递函数api进入map去执行,把字符串第一个字母变大写, #其他变小写返回 def format_name(s): s=s.lower() print(s) return s[0] ...
- 小程序推送消息(Template)
最近搞小程序模拟推送消息,才发现小程序推送消息接口准备下线. 请注意,小程序模板消息接口将于2020年1月10日下线,开发者可使用订阅消息功能 咱们现在有需求,所以不管下不下,完成再说. 一:”获取a ...
- UNP学习第三章
一.主机字节序和网络字节序 转换时用到下列四个函数: #include <netinet/in.h> uint16_t htons(uint16_t host16bitvalue); ui ...
- JS基础入门篇(二十七)—BOM
虽然上次写到js基础篇(二十四),这次直接写到(二十七).是为了提醒自己中间有几篇没写.特此说明一下啊. 1.window.open() 使用a标签呢,点击一下a标签页面才会跳转,有时候我们需要做的操 ...
- 团队冲刺DAY5
团队冲刺DAY5 今天的内容是组件和事件处理这一部分,也就是需要扣一个消息系统的图形界面. 提到这部分,就不得不说Java Swing. 常用组件及部件 JTextField:文本框 JTextAre ...
- 优化问题及KKT条件
整理自其他优秀博文及自己理解. 目录 无约束优化 等式约束 不等式约束(KKT条件) 1.无约束优化 无约束优化问题即高数下册中的 “多元函数的极值" 部分. 驻点:所有偏导数皆为0的点: ...
- MySQL-视图上进行增删改查
https://dev.mysql.com/doc/refman/5.7/en/view-updatability.html https://dev.mysql.com/doc/refman/8.0/ ...
- JS-JSDoc
http://usejsdoc.org/ 生成 JSDoc 格式的注释: sublime:安装 DocBlockr VSCode:自带 JSDoc 插件
- docker-compose 搭建 Redis Sentinel 测试环境
docker-compose 搭建 Redis Sentinel 测试环境 本文介绍如何使用 docker-compose 快速搭建一个 Redis Sentinel 测试环境.其中 Redis 集群 ...