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的更多相关文章

  1. 初撩Django-RESTful-rest_framework序列化(将模型序列化为JSON)

    官方网站: https://www.django-rest-framework.org/ 翻译网站:https://q1mi.github.io/Django-REST-framework-docum ...

  2. 初撩Django-RESTful-rest_framework视图函数

    rest_framework中的视图函数: View函数 APIView函数 APIView的子类 mixins函数 viewsets函数 1.View函数 2.APIView函数 3.APIView ...

  3. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  4. 我所理解的RESTful Web API [设计篇]

    <我所理解的RESTful Web API [Web标准篇]>Web服务已经成为了异质系统之间的互联与集成的主要手段,在过去一段不短的时间里,Web服务几乎清一水地采用SOAP来构建.构建 ...

  5. 追踪app崩溃率、事件响应链、Run Loop、线程和进程、数据表的优化、动画库、Restful架构、SDWebImage的原理

    1.如何追踪app崩溃率,如何解决线上闪退 当 iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上.crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈 跟踪信 ...

  6. RESTFUL接口

    原文地址:http://kb.cnblogs.com/page/512047/ 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者 ...

  7. RESTful架构详解(转)

    1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...

  8. 文档数据库RavenDB-介绍与初体验

    文档数据库RavenDB-介绍与初体验 阅读目录 1.RavenDB概述与特性 2.RavenDB安装 3.C#开发初体验 4.RavenDB资源 不知不觉,“.NET平台开源项目速览“系列文章已经1 ...

  9. RESTful架构详解(转)

    1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...

随机推荐

  1. eclipse远程调试Tomcat方法(转)

    转自:http://blog.csdn.net/afgasdg/article/details/9236877 1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OP ...

  2. 修改TOMCAT服务的端口

    1.进入tomcat配置文件的目录 [root@db200 conf]# cd /usr/local/tocat8/conf/ 2.打开配置文件 vim server.xml 找到Connector ...

  3. 1、Fiddler 打断点 bpu

    一.fiddler 设置断点,可修改以下请求 可以修改HTTP请求头信息,如修改cookie,user-agent等 可以修改请求数据,突破表单限制,提交任意数字,如充值最大金额100,可修改为100 ...

  4. Flink(一)集群配置

    三台主机 centos6 已经完成的工作: 防火墙已关闭 主机名修改完毕,ssh免密登陆配置完成 jdk已安装 zookeeper已经部署并运行 hadoop已经部署并运行 版本:flink-1.8. ...

  5. String path = request.getContextPath();报错

    String path = request.getContextPath();报错 1. 右击该项目 - Build Path - Configure Build Path , 在 Libraries ...

  6. 【基础】Maven生命周期

    Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...

  7. delphi 运行时提升软件到管理员权限

    //以管理员身份运行procedure RunAsAdmin(hWnd: HWND; aFile: string; aParameters: string);varsei: TShellExecute ...

  8. (转)Spring Boot干货系列:(四)开发Web应用之Thymeleaf篇

    转:http://tengj.top/2017/03/13/springboot4/ 前言 Web开发是我们平时开发中至关重要的,这里就来介绍一下Spring Boot对Web开发的支持. 正文 Sp ...

  9. js千位符 | js 千位分隔符 | js 金额格式化

    js 千位分隔符 千位分隔符,其实就是数字中的逗号.依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值.所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易 ...

  10. 关于radio选中或者反选

      关注点:一.attr()和prop()的区别 <!DOCTYPE html> <html> <head> <title>JavaScript对文字按 ...