【SpringMVC篇】讲解RESTful相关知识

专栏【SpringMVC】
喜欢的诗句:天行健,君子以自强不息。
音乐分享【如愿】
欢迎并且感谢大家指出小吉的问题

文章目录

  • REST简介
  • RESTful入门案例
    • ⭐案例一
    • ⭐案例二
      • ✨传参问题
    • 小结
  • RESTful快速开发

【SpringMVC篇】讲解RESTful相关知识_第1张图片
RESTful架构风格近年来备受关注,它倡导一种简洁统一的接口设计理念,使接口更加直观易用。那么如何使用Spring MVC来开发RESTful接口呢?本文将为大家详细解析。

RESTful最核心的设计是资源,并使用HTTP方法对资源进行操作。我们将通过实例看到,Spring MVC提供了完美的RESTful支持。通过注解映射路径和方法,就可以轻松实现GET查询、POST创建、PUT更新、DELETE删除等接口。

Spring MVC中还提供了许多辅助特性,如自动转换路径变量,使我们可以脱离复杂的getParameter操作。整合RESTful的Spring MVC开发效率非常高,本文将让读者快速上手。

最后,我们还将了解RESTful开发的最佳实践和原则,包括版本管理、文档、认证授权等方面,帮助读者用SpringMVC构建优秀的RESTful服务,以支持复杂的企业应用场景。让我们开始RESTful之旅!

REST简介

【SpringMVC篇】讲解RESTful相关知识_第2张图片
【SpringMVC篇】讲解RESTful相关知识_第3张图片

RESTful入门案例

我们仍然按照下面的结构创建项目
【SpringMVC篇】讲解RESTful相关知识_第4张图片

【SpringMVC篇】讲解RESTful相关知识_第5张图片

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0modelVersion>
    <parent>
        <groupId>org.examplegroupId>
        <artifactId>SpringMVCartifactId>
        <version>1.0-SNAPSHOTversion>
    parent>
    <artifactId>Demo4artifactId>
    <packaging>warpackaging>
    <name>Demo4 Maven Webappname>
    <url>http://maven.apache.orgurl>
    <dependencies>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>3.8.1version>
            <scope>testscope>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webartifactId>
            <version>5.2.10.RELEASEversion>
        dependency>
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>javax.servlet-apiartifactId>
            <version>3.0.1version>
            <scope>providedscope>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webmvcartifactId>
            <version>5.2.10.RELEASEversion>
            <scope>compilescope>
        dependency>
    dependencies>
    <build>
        <finalName>Demo4finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.mavengroupId>
                <artifactId>tomcat7-maven-pluginartifactId>
                <version>2.1version>
                <configuration>
                    <port>80port>
                    <path>/path>
                configuration>
            plugin>
        plugins>
    build>
project>

UserController

package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class UserController {
//    @RequestMapping("/users")
//    @ResponseBody
//    public String save(){
//        System.out.println("user save...");
//        return "{'module':'user save'}";
//    }

    @RequestMapping(value = "/users",method = RequestMethod.POST)
    @ResponseBody
    public String save(){
        System.out.println("user save...");
        return "{'module':'user save'}";
    }
}

⭐案例一

【SpringMVC篇】讲解RESTful相关知识_第6张图片

【SpringMVC篇】讲解RESTful相关知识_第7张图片
运行成功
【SpringMVC篇】讲解RESTful相关知识_第8张图片

⭐案例二

package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class UserController {
    @RequestMapping(value = "/users",method = RequestMethod.DELETE)
    @ResponseBody
    public String delete(Integer id) {
        System.out.println("user delete..." + id);
        return "{'module':'user delete'}";
    }
}

【SpringMVC篇】讲解RESTful相关知识_第9张图片

这里要选择delete了

【SpringMVC篇】讲解RESTful相关知识_第10张图片
运行成功
【SpringMVC篇】讲解RESTful相关知识_第11张图片
但是我们发现运行结果出现了null,证明没有传参

✨传参问题

加上@PathVariable,表示路径变量
【SpringMVC篇】讲解RESTful相关知识_第12张图片
运行成功
【SpringMVC篇】讲解RESTful相关知识_第13张图片
【SpringMVC篇】讲解RESTful相关知识_第14张图片

小结

【SpringMVC篇】讲解RESTful相关知识_第15张图片
【SpringMVC篇】讲解RESTful相关知识_第16张图片
【SpringMVC篇】讲解RESTful相关知识_第17张图片

RESTful快速开发

简而言之就是简化代码
我们来修改一下
【SpringMVC篇】讲解RESTful相关知识_第18张图片

Spring MVC对RESTful提供了完整的支持,使得接口开发非常迅速高效。但要构建优秀的RESTful服务,我们还需要注意许多其他方面,比如安全性、扩展性、文档等。

本文只是RESTful开发的入门,希望读者可以在工作中不断总结经验和最佳实践。如果有更多疑问,请随时留言讨论。最后,接口开发也需要对业务有深入理解,才能设计恰当的资源模型。持续学习,祝各位RESTful开发顺利!

本文只是RESTful的基础入门,还有更多知识需要进一步学习,比如版本管理、文档swagger等等。如果大家在接口开发中还有任何疑问,欢迎在评论区与我交流。让我们共同学习,成为接口开发高手!
【SpringMVC篇】讲解RESTful相关知识_第19张图片

你可能感兴趣的:(SpringMVC,restful,后端,springmvc,spring)