resultful风格接口

2023-05-16

一、产生背景


   网络应用程序,越来越流行前端和后端的分离设计。当前的发展趋势是前端的设计层出不穷。比如:各种型号的手机、平板灯其他设计。因为必须要一种统一的机制方便不同的前端和后端进行通信。这就导致了API结构的流行。其中Restful API是目前比较成熟的一套互联网应用程序的API设计理论。


二、简介


     Restfule风格是一种软件架构风格,而不是标准,只是提供了一种设计原则和约束条件。主要适用于客户端和服务器端交互的软件。是基于http协议实现。目的是为了提高系统的可伸缩性,降低应用之间的耦合度,方便框架分布式处理程序。基于这个风格的软件可更加的简单、更有层次,更易于实现缓存的机制。
     在resultful风格中,用户请求的url使用同一个URL而用请求方式:get/post/delete/put等方式对请求的处理方法进行区分。这样可以在前后台分离的开发中让前端开发人员不会对请求的资源地址产生混淆,形成一个统一的接口。

三、特点


(1)每种url代表了一种资源。
(2)客户端和服务器之间,传递这个资源的某种表现层。
(3)客户端通过四个http动词,对服务器资源进行操作。实现表现层状态的转化。


四、使用规定


在http协议中,四个表示操作方式的动词:GET/Post/put/Delete,他们分别对应四种基本操作。

Get用来获取资源。post用来新建立资源,也可以更新资源。put用来更新资源。Delete用来删除资源。



GET,对应select:是从服务器查询,可以在服务器通过请求的参数区分查询的方式。
POST,对应Create:在服务器新建立一个资源,调用insert操作。
PUT,对应update操作:在服务器更新资源,调用update操作。
PATCH,对应update操作,在服务器更新资源,客户端提供改变的属性。(目前JDK7没有实现,tomcat7也不行。)
DELETE,对应DELETE操作,从服务器删除资源,调用delete语句。


五、spring mvc中实现restfule风格接口


1.四种动作


   Spring MVc 对resstful应用提供了以下支持。利用@RequestMapping 指定要处理请求的url模板和http请求的动作类型。利用@PathVariable将url请求模板中的变量映射到处理方法参数上。前台利用AJAX,在客户端发出put、delete动作的请求。

一般的应用格式如下:
@RequestMapping(value="/{id}",method=RequestMethod.GET)
@RequestMapping(value="/{id}",method=RequestMethod.POST)
@RequestMapping(value="/{id}",method=RequestMethod.DELETE)
@RequestMapping(value="/{id}",method=RequestMethod.PUT)


2.参考例子


@RequestMapping(value="/queryQuByTypeIdAndChaID/{questionTypeId}/{chapterId}",method=RequestMethod.GET,produces="text/html;charset=UTF-8")
public void queryQuByTypeIdAndChaID(HttpServletRequest request,HttpServletResponse response,@PathVariable String questionTypeId, 
@PathVariable String chapterId  ){
					}
				

六、参考连接


理解RESTful架构

Spring框架之基于Restful风格实现的SpringMVC

Restful风格API接口开发springMVC篇
SpringMVC+Json构建基于Restful风格的应用





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

resultful风格接口 的相关文章

  • Windows设置SSH出错,Permission denied (publickey),Error connecting to agent

    最近在设置nginx配置 xff0c 由于云服务器是密钥登陆的 xff0c 所以有一些问题 前置环境 xff1a 安装Chocolatey 以管理员权限打开PowerShell运行Set ExecutionPolicy AllSigned
  • 其他笔记 - 关于Fast DDS 和rtps的介绍

    简述 分布式实时数据分发服务中间件协议Data Distribution Service xff08 DDS xff09 是OMG于2003年发布并于2007年修订的开放标准 该标准定义了用于分布式系统的 发布 订阅 通信中间件的API规范
  • 其他笔记 - InfluxDB与MongoDB的对比

    InfluxDB与MongoDB对比 文章来源 本文将比较InfluxDB与MongoDB在常见时间序列工作负载下的性能和特性 xff0c 特别是两者在数据传输率 xff0c 磁盘上数据压缩率和查询性能上的差异 InfluxDB是一个Go实
  • 其他笔记 - Electron代替品探索过程

    目录 前言替代品一览C Net C 43 43 DartGoJavaJSPython sciter测试 前言 Electron是基于 Node js 和 Chromium的 xff0c 可以把前端代码打包成桌面应用的工具 xff0c 使得J
  • 【其他笔记】 双屏显示分辨率低下、屏幕闪烁、暗沉等问题。

    1 我在以前学校的电脑 xff0c 设置单屏的时候dell屏幕很亮 xff0c 双屏 xff08 hdmi和VGA线 xff09 时 xff0c dell屏幕会变暗 这个时期我链接的主机 xff0c 有一张N卡 xff0c 所以一个屏幕接到
  • 【读书笔记】 如何进行Python性能分析

    文章目录 Python解释器性能分析方法1 time计时2 标准库内建分析工具3 逐行分析4 诊断内存其他建议 参考目录 Python解释器 python 解释器有很多 xff1a CPython IPython Jython PyPy x
  • 自编译的pytorch出现OSError: libmkl_intel_lp64.so.1: cannot open shared object file: No such file or direct

    我的Pytorch是本机编译安装 运行时出现 xff1a span class token function Traceback span span class token punctuation span most recent call
  • 【深度笔记】模型理论性能计算调研

    定义 1 计算量 FLOP xff1a 浮点运算次数 xff08 Floating Point Operations xff09 MAC xff1a 乘加累积操作数 FLOPs S xff1a 每秒的FLOP xff0c 可视作性能 公式
  • 分布式学习 - MPICH编译与实践

    下载release编译 参考官方README 源码编译 准备工作 xff1a git clone https github com pmodels mpich git bash cd mpich git submodule update i
  • 07誓师大会有感

    07财年的誓师大会如约在中国剧院举行了 xff0c 纪律显得比以往更加严格 xff0c 迟到或者服装不合格者都将予与重罚 开场一段精彩的电影片断 xff0c 然后是高唱神码之歌 林总代表总裁室总结了06财年的营收状况 xff0c 已经07年
  • ROS 进阶之 tf变换

    TF变换 一 http www guyuehome com 355 http www guyuehome com 279 world 坐标系 二 广播TF变换 1 广播tf变换 向系统中广播参考系之间的坐标变换关系 系统中更可能会存在多个不
  • 易扩展的SLAM框架-OpenVSLAM

    本文介绍了一种具有较高可用性和可扩展性的可视化SLAM框架 OpenVSLAM 视觉SLAM系统对于AR设备 机器人和无人机的自主控制等是必不可少的 然而 传统的开源视觉SLAM框架并没有像从第三方程序调用的库那样进行适当的设计 为了克服这
  • GVINS:基于GNSS视觉惯性紧耦合的平滑状态估计方法

    文章 xff1a GVINS Tightly Coupled GNSS Visual Inertial Fusion for Smooth and Consistent State Estimation 作者 xff1a Shaozu Ca
  • opencv中ArUco模块实践(1)

    论文阅读模块将分享点云处理 xff0c SLAM xff0c 三维视觉 xff0c 高精地图相关的文章 公众号致力于理解三维视觉领域相关内容的干货分享 xff0c 欢迎各位加入我 xff0c 我们一起每天一篇文章阅读 xff0c 开启分享之
  • ROS2入门之基本介绍

    论文阅读模块将分享点云处理 SLAM 三维视觉 高精地图相关的文章 公众号致力于理解三维视觉领域相关内容的干货分享 欢迎各位加入我 我们一起每天一篇文章阅读 开启分享之旅 有兴趣的可联系微信dianyunpcl 163 com 前言 201
  • ikd-Tree:增量KD树在机器人中的应用

    文章 xff1a ikd Tree An Incremental K D Tree for Robotic Applications 作者 xff1a Yixi Cai Wei Xu and Fu Zhang 编译 xff1a 点云PCL
  • 视觉SLAM从传统到语义方法的概述

    文章 xff1a An Overview on Visual SLAM From Tradition to Semantic 作者 xff1a Weifeng Chen Guangtao Shang Aihong Ji Chengjun Z
  • Android 11 PackageManagerService源码分析(二):Packages.xml详解

    1 开篇 在上一篇文章中提到Settings类会在PackageManagerService启动过程中对packages xml等一些列xml文件进行解析 那么有以下问题 xff1a 这些文件记录了什么内容 xff1f 为什么需要这些文件

随机推荐

  • 【Python】eval的作用及NameError: name '变量名' is not defined

    在个人Python 的学习中 xff0c 通过记录总结 xff0c 提高自己的知识储备 xff0c 和学习能力 解决和解释三个小问题 xff1a 1 input与raw input 的区别 2 while循环 3 eval 的作用是什么 x
  • 【Python】使用网络调试助手传输数据(UDP协议)

    目录 1 发送与接收数据代码 2 网络调试助手配置 3 网络通信的流程 1 发送与接收数据代码 导入socket模块 import socket 判断程序入口 if name 61 61 39 main 39 创建套接字 xff0c AF
  • 课程设计——学生成绩管理系统 C语言

    课程设计 学生成绩管理系统 基本要求 xff1a 1 程序功能 编程实现一个基础的成绩管理系统 2 设计目的 通过本程序综合掌握结构体类型 指针 函数 文件等知识的综合使用 3 功能要求 可扩充功能 1 实现简单的菜单设计 如下所示 1添加
  • Foxmail登陆失败-NO LOGIN Login error password error

    问题描述 xff1a 因为今天在一个项目中需要用到邮箱的客户端授权码 xff0c 所以我在网易邮箱网页版中设置了授权码 xff0c 但是在后来在Foxmail客户端收取邮件时出现了问题 xff1a 我确定自己没有改过密码 xff0c 所以又
  • 远程登录阿里云服务器时,提示Permission denied, please try again.

    在使用ssh命令 xff0c 远程登录阿里云服务器时 xff0c 提示Permission denied please try again 百分之九十的可能 xff1a 你的密码错了 xff01 你需要注意的是 xff0c 我们的实例有两个
  • 为什么使用token?session与token的区别

    目录 一 session的状态保持及弊端 二 token认证机制 一 session的状态保持及弊端 当用户第一次通过浏览器使用用户名和密码访问服务器时 xff0c 服务器会验证用户数据 xff0c 验证成功后在服务器端写入session数
  • 在线加密解密工具

    http tool oschina net encrypt 一个在线加解密工具 xff0c 界面如图 xff1a
  • Django到底是MVC还是MVT?以及MVC和MVT的区别

    最近一直被一些问题所困惑 xff1a Django是遵循MVC还是MVT xff1f MVC和MVT到底有哪些区别 xff1f MVC可以继续拆分吗 xff1f 在网络上浏览了很多无关痛痒的文章 xff0c 无非是M V C分别代表什么 x
  • 【Python】使用Counter方法统计字符串每个字符出现的次数

    from collections import Counter a 61 34 a lskdh 96 foiegn 96 96 as ldnf asd 121 2ljladsfkja 96 sdijfhaosjlfd gjsdfg as d
  • 【Python】时间戳的格式化输出

    将当前时间按照 2019 02 25 10 xff1a 26 xff1a 55 输出 xff1a import datetime now time 61 datetime datetime now strftime 34 Y m d H M
  • 【Python】输出给定范围内的所有素数

    质数 xff08 prime number xff09 又称素数 xff0c 有无限个 质数定义为在大于1的自然数中 xff0c 除了1和它本身以外不再有其他因数 首先定义一个空列表用来存放所有的素数 sushu 61 遍历给定的范围 xf
  • Java 通过map构造树形结构

    在开发中 xff0c 经常会有将 数据组装成为树形结构的场景 xff0c 除了可以通过递归实现 xff0c 还可以通过map 组装实现 一 xff0c 构造基本数据 import apple laf JRSUIUtils import co
  • 【无标题】es搜索基本操作

    一 xff0c 准备数据 1 创建索引 PUT lagou book 2 创建mapping PUT lagou book doc mapping 34 properties 34 34 description 34 34 type 34
  • ubuntu 环境使用eclipse和JLink对uboot进行调试

    ubuntu 12 04 Jlink v8 Jlink Linux v422a tar gz Linux J Link ARM V4 34 Windows 下载eclipse C C 43 43 版本 http www eclipse or
  • 【ES】常用操作工具

    工欲善其事 xff0c 必先利于器 xff0c es使用过程中 xff0c 有些工具能帮助我们快速的上手和使用 一 es head es head 是一款专门针对 es的客户端工具elasticSearch配置包 是一个基于node js的
  • 【es】基本概念理解

    一 xff0c 初识es 1 是什么 xff1f ElasticSearch 简称es 开源的分布式的全文搜索引擎 xff0c 可以近乎实时的存储检索数据 xff0c es使用java开发 xff0c 并且使用Lucene作为核心实现搜索功
  • 无法安装net framework 3.5 的解决方法

    电脑刚重装了Windows8 1系统 xff0c 然后安装数据库的时候 xff0c 却出现了这样的问题 xff1a 您的电脑上的应用需要使用以下windows功能 问题原因是 xff1a 在安装系统的时候 xff0c NET Framewo
  • 【计算机网络原理】第四章 数据链路层

    今天主要梳理了一下数据链路层的内容 xff0c 如下 一 宏观规划 综合数据链路层的整体 xff0c 分为两大部分 xff0c 第一部分讲解数据链路层的功能 xff0c 第二部分讲解数据链路层的功能 这些协议 xff0c 其实还是为了实现数
  • 【redis】关系型数据库 VS 非关系型数据库

    一 关系型数据库 xff1f 1 概念 关系型数据库是指采用了关系模型来组织数据的数据库 简单来说 xff0c 关系模式就是二维表格模型 主要代表 xff1a SQL Server xff0c Oracle Mysql PostgreSQL
  • resultful风格接口

    一 产生背景 网络应用程序 xff0c 越来越流行前端和后端的分离设计 当前的发展趋势是前端的设计层出不穷 比如 xff1a 各种型号的手机 平板灯其他设计 因为必须要一种统一的机制方便不同的前端和后端进行通信 这就导致了API结构的流行