一,什么是RESTful 

  RESTful(RESTful Web Services)一种架构风格,表述性状态转移,它不是一个软件,也不是一个标准,而是一种思想,不依赖于任何通信协议,但是开发时要成功映射到某协议时也需要遵循其标准,但不包含对通信协议的更改

  特征:

    1.通过url地址来标识资源,系统中的每个对象或资源都可以通过其url地址来获取

    2.统一接口,显式地使用HTTP方法,来进行crud(create,update,insert,delete)映射

      创建资源使用POST

      更新资源使用PUT

      检索资源使用GET

      删除资源使用DELETE

    3.资源多重反映.通过url地址访问的每个资源都可以根据客户端的规定进行返回,例:JSON,XML

   RESTful服务适用web应用中创建服务的API,将资源以JSON或XML等数据格式进行暴露,从而可以更方便的让客户端进行调用

二.基于SpringMVC的RESTful服务

  在SpringMVC中对RESTful支持,主要通过注解来实现

  @Controller:声明一个处理请求的控制器

  @RequestMapping:请求映射地址到对应的方法,该注解又可以分为一下几种类型:

    @GetMapping

    @PostMpping

    @PutMapping

    @DeleteMapping

    @PatchMapping

  @ResponsrBody:响应内容转换为JSON格式

  @RequestBody:请求内容转换为JSON格式

  @RestContrller:等同@Controller+@ResponsrBody

实例环境:

  JDK1.8;

  Maven3.5

  Spring Boot Web Starter 2.0.0

整体API设计(基于用户管理模块):

  Get/user:获取所有用户

  Get/user/{id}:根据ID获取该用户信息

  Post/insert:保存用户信息

  Put/update:更新用户信息

  Delete/delete/{id}:根据用户ID删除用户

  Get/user/from:获取创建用户表单

  Get/update/{id}:根据ID获取用户信息

  

  

  

  

USER 实体

  

 mapper

  

service

  

Main控制器

  

application.properties

  

三. 安装Postman

  下载地址:

四.运行,测试

  

  运行完成,访问端口8080

  1.Get

  

  2.Post

  

  3.Put

  

  4.Delete

  

测试返回200状态,至此测试成功,RESTful服务的实现完成

更多java学习请关注Terry公众号,有问题请在此留言

  

  

  

  

    

基于springMVC的RESTful服务实现的更多相关文章

  1. SpringMVC实现RESTful服务

    SpringMVC实现RESTful服务 这里只说service,controller层的代码.Mapper层则直接继承Mapper<T>则可以,记住mybatis-config.xml一 ...

  2. 基于 springMVC 的 RESTful HTTP API 实践(服务端)

    理解 REST REST(Representational State Transfer),中文翻译叫"表述性状态转移".是 Roy Thomas Fielding 在他2000年 ...

  3. 前后端分离开发,基于SpringMVC符合Restful API风格Maven项目实战(附完整Demo)!

    摘要: 本人在前辈<从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)>一文的基础上,实现了一个基于Spring的符合REST风格的完整Demo,具有MVC分层结构并 ...

  4. 实战SpringCloud响应式微服务系列教程(第九章)使用Spring WebFlux构建响应式RESTful服务

    本文为实战SpringCloud响应式微服务系列教程第九章,讲解使用Spring WebFlux构建响应式RESTful服务.建议没有之前基础的童鞋,先看之前的章节,章节目录放在文末. 从本节开始我们 ...

  5. 基于springmvc和restClient的rest服务的测试

    在开发中,不熟悉驱动驱动测试开发的coder往往喜欢将服务应用启动以后测试,对于GET请求可以直接在浏览器中输入URL就可以,参数非中文可以直接追加到URL后.但是,对于其他请求方式的测试必须借助相应 ...

  6. 基于SpringMVC下的Rest服务框架搭建【集成Swagger】

    1.需求背景 SpringMVC本身就可以开发出基于rest风格的服务,通过简单的配置,即可快速开发出一个可供客户端调用的rest服务,通常这些服务要不就是用于手机app的开发,要不就是提供给第三方开 ...

  7. 基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】

    基于SpringMVC下的Rest服务框架搭建[1.集成Swagger] 1.需求背景 SpringMVC本身就可以开发出基于rest风格的服务,通过简单的配置,即可快速开发出一个可供客户端调用的re ...

  8. 基于SpringBoot开发一个Restful服务,实现增删改查功能

    前言 在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练. ...

  9. Python flask 基于 Flask 提供 RESTful Web 服务

    转载自 http://python.jobbole.com/87118/ 什么是 REST REST 全称是 Representational State Transfer,翻译成中文是『表现层状态转 ...

随机推荐

  1. jquery操作字符串常用方法总结及工作代码

    1.javascript数组用法 方法 描述 FF IE concat() 连接两个或更多的数组,并返回结果. 1 4 join() 把数组的所有元素放入一个字符串.元素通过指定的分隔符进行分隔. 1 ...

  2. Spring boot --- Spring Oauth(三)

    本节将学习 spring security oauth  实现单点登录 概述 首先我们来了解什么是单点登录.看下面两张图就明白了. 很明显,单点登录最重要解决的就是登录和注销的功能,今天的例子,可以用 ...

  3. eclipse启动项目报错:java.lang.ClassNotFoundException: ContextLoaderListener

    eclipse 启动项目报错:找不到 Spring 监听器类 org.springframework.web.context.ContextLoaderListener 严重: Error confi ...

  4. TortoiseGit用户手册

    3 配置TortoiseGit 3.1 生成公钥 生成SSH安全密钥,提供给GIT版本库管理员以访问Git 版本库,点击桌面上生成的图标 然后执行执行“ssh-keygen”生成自己的公钥: 一路回车 ...

  5. idea 版本升级至最新版

    前言:当前最新版为官网上的2018.2.3版本 一.下载最新版 官网地址:http://www.jetbrains.com/idea/download/#section=windows 百度网盘地址: ...

  6. HTML5:'data-'属性的作用是什么

    在大家查看HTML时,经常会看到data-role.data-theme等的使用,比如:通过如下代码即可实现页眉的效果: <div data-role="header"> ...

  7. Bash:生成随机文件内容

    有的时候为了做些读写测试需要一些指定大小的文件,这时候可以通过下面的方法得到 dd if=/dev/urandom of=rnd_tmp_file bs=1M count=100 使用dd工具以Lin ...

  8. apply、call、bind有什么区别?

    使用 apply var a = { name : "Cherry", func1: function () { console.log(this.name) }, func2: ...

  9. LOJ#6491. zrq 学反演(莫比乌斯反演 杜教筛)

    题意 题目链接 Sol 反演套路题? 不过最后一步还是挺妙的. 套路枚举\(d\),化简可以得到 \[\sum_{T = 1}^m (\frac{M}{T})^n \sum_{d \ | T} d \ ...

  10. vue自定义日历组件的实现

    实现一个日期组件,如图: components.js代码如下: Vue.component('sc-calendar',{ template:'<div class="scCalend ...