SpringMVC Restful api接口实现的代码

发布时间 - 2026-01-11 03:22:07    点击率:

【前言】

面向资源的 Restful 风格的 api 接口本着简洁,资源,便于扩展,便于理解等等各项优势,在如今的系统服务中越来越受欢迎。

.net平台有WebAPi项目是专门用来实现Restful api的,其良好的系统封装,简洁优雅的代码实现,深受.net平台开发人员所青睐,在后台服务api接口中,已经逐步取代了辉煌一时MVC Controller,更准确地说,合适的项目使用更加合适的工具,开发效率将会更加高效。

python平台有tornado框架,也是原生支持了Restful api,在使用上有了很大的便利。

Java平台的SpringMVC主键在Web开发中取代了Struts2而占据了更加有力的地位,我们今天着重讲解如何在Java SpringMVC项目中实现Restful api。

【实现思路】

Restful api的实现脱离不了路由,这里我们的Restful api路由由spring mvc 的 controller来实现。

【开发及部署环境】

开发环境:Windows 7 ×64 英文版

     Intellij IDEA 2017.2

部署环境:JDK 1.8.0

     Tomcat 8.5.5

测试环境:chrome

        fiddler

【实现过程】

1、搭建spring mvc maven项目

这里的搭建步骤不再赘述,如有需要参考:https://www./article/117670.htm

2、新建控制器 StudentController

为了体现Restful api 我们采用注解,RequestMapping("/api/Student")

具体的代码如下:

package Controllers;

import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/Student")
public class StudentController {

 @RequestMapping(method = RequestMethod.GET)
 public String Get() {
  return "{\"id\":\"1\",\"name\":\"1111111111\"}";
 }

 @RequestMapping(method = RequestMethod.POST)
 public String Post() {
  return "{\"id\":\"2\",\"name\":\"2222222222\"}";
 }

 @RequestMapping(method = RequestMethod.PUT)
 public String Put() {
  return "{\"id\":\"3\",\"name\":\"3333333333\"}";
 }

 @RequestMapping(method = RequestMethod.DELETE)
 public String DELETE() {
  return "{\"id\":\"4\",\"name\":\"4444444444\"}";
 }

 @RequestMapping(value = "/{id}",method = RequestMethod.GET)
 public String Get(@PathVariable("id") Integer id) {
  return "{\"id\":\""+id+"\",\"name\":\"get path variable id\"}";
 }
}

这里有Get,Post,Put,Delete分别对应 查询,添加,修改,删除四种对资源的操作,即通常所说的CRUD。

spring mvc可实现restful的方式有@Controller和@RestController两种方式,两种方式的区别如下:

@Controller的方式实现如果要返回json,xml等文本,需要额外添加@ResponseBody注解,例如: 

   @ResponseBody //用于返回json数据或者text格式文本
  @RequestMapping(value = "/TestJson", method = RequestMethod.GET)
  public String TestJson() {
   return "{\"id\":\"1001\",\"name\":\"zhangsan\"}";
  }

@RestController方式不需要写@ResponseBody,但是不能返回模型绑定数据和jsp视图,只能返回json,xml文本,仅仅是为了更加方便返回json资源而已。

上述的Rest方法中多写了个Get方法: 

 @RequestMapping(value = "/{id}",method = RequestMethod.GET)
  public String Get(@PathVariable("id") Integer id) {
   return "{\"id\":\""+id+"\",\"name\":\"get path variable id\"}";
  }

该方法可以直接在url拼接一个参数,更加方便对资源的定向访问,例如查一个student list 可以默认空参数,而查询对应的某一个student详情信息,可以id=studentId 定向查询单条,使得我们对资源的访问更加快捷方便。

【系统测试】

运行系统,使用fiddler调用restful api接口:

1.Get方式

  

2.Post方式

   

3.Put方式

  

4.Delete方式

   

5.Get/id方式

   

至此,可见我们的spring mvc Restful api接口已经全部通过测试!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# SpringMVC  # Restful  # api接口  # api  # springmvc使用REST出现:Request method 'PUT' n  # 如何利用Spring MVC实现RESTful风格  # springmvc Rest风格介绍及实现代码示例  # SpringMVC开发restful API之用户查询代码详解  # Spring MVC利用Swagger2如何构建动态RESTful API详解  # SpringMVC数据页响应ModelAndView实现页面跳转  # Spring MVC   文件、cookies的接收&nbs  # 两种  # 地说  # 将会  # 如有  # 取代了  # 可以直接  # 受欢迎  # 不需  # 四种  # 英文版  # 来实现  # 绑定  # 开发人员  # 大家多多  # 要写  # 更准确  # 主键  # 单条  # 是为了  # 多写 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android利用动画实现背景逐渐变暗  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  如何快速辨别茅台真假?关键步骤解析  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  韩国服务器如何优化跨境访问实现高效连接?  微信小程序 input输入框控件详解及实例(多种示例)  Laravel如何记录自定义日志?(Log频道配置)  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Laravel如何使用Telescope进行调试?(安装和使用教程)  如何在VPS电脑上快速搭建网站?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  如何快速登录WAP自助建站平台?  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  googleplay官方入口在哪里_Google Play官方商店快速入口指南  如何用5美元大硬盘VPS安全高效搭建个人网站?  ,网页ppt怎么弄成自己的ppt?  php json中文编码为null的解决办法  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  如何实现javascript表单验证_正则表达式有哪些实用技巧  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  Laravel如何处理异常和错误?(Handler示例)  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  网站制作软件免费下载安装,有哪些免费下载的软件网站?  如何快速搭建二级域名独立网站?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  黑客如何通过漏洞一步步攻陷网站服务器?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  微信小程序 wx.uploadFile无法上传解决办法  Laravel如何创建自定义Facades?(详细步骤)  移动端脚本框架Hammer.js  Java类加载基本过程详细介绍  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  如何快速使用云服务器搭建个人网站?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  ,在苏州找工作,上哪个网站比较好?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  iOS发送验证码倒计时应用  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  零服务器AI建站解决方案:快速部署与云端平台低成本实践  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  JavaScript中的标签模板是什么_它如何扩展字符串功能  微信小程序 配置文件详细介绍