Rest风格基本语法与实战

news2024/7/4 4:50:00

1,前置知识点

1.1 @GetMapping,@PostMapping,@PutMapping,@DeleteMapping

平时我们都是使用@RequestMapping,然后通过它的method属性来指定请求的方式,这样是有些麻烦的,然后这四个标签就是来简化这一点的,具体如下,
@GetMapping = @RequestMapping(method = RequestMethod.GET)
@PostMapping = @RequestMapping(method = RequestMethod.POST)
@PutMapping = @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)

1.2 @PathVariable

@PathVariable是Spring MVC中的注解,用于从URL路径中提取变量值并将其绑定到方法参数上。它通常与@RequestMapping一起使用。
使用@PathVariable注解可以方便地获取REST风格URL路径中的变量值,并将其作为方法参数使用。
@GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("book query ..." + id );
        return "{'module':'book query'}";
    }

在getUserById方法上,我们使用@GetMapping(“/{id}”)将方法与URL路径/books/{id}进行映射。{id}表示一个占位符,它对应URL路径中的实际值。
然后,我们在方法参数上使用@PathVariable注解,将id参数与URL路径中的实际值进行绑定。Spring MVC会自动提取URL路径中的相应部分,并将其作为参数传递给getUserById方法。
例如,当客户端发送GET请求到/books/1时,Spring MVC将提取URL中的1作为id参数的值,并将其传递给getById方法。在方法内部,我们可以使用id来执行相应的逻辑操作,比如根据用户ID查询用户信息。

1.3 按照REST风格访问资源时,使用行为动作区分对资源进行了何种操作

http://localhost:8080/books			查询所有图书信息   GET(查询)
http://localhost:8080/books/1			查询指定图书信息	GET(查询)
http://localhost:8080/books			添加图书信息	POST(新增/保存)
http://127.0.0.1:8080/books	修改用户信息	PUT(修改/更新)
http://localhost:8080/books/1	删除用户信息	DELETE(删除)

2,代码演示

controller类

package com.hkd.controller;

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


@RestController
@RequestMapping("/books")
public class BookController {

    @GetMapping
    public String query(){
        System.out.println("book query..." );
        return "{'module':'book query'}";
    }

    @PostMapping
    public String save(){
        System.out.println("book save..." );
        return "{'module':'book save'}";
    }

    @PutMapping
    public String update(){
        System.out.println("book update..." );
        return "{'module':'book update'}";
    }

    @DeleteMapping("/{id}")
    public String update(@PathVariable Integer id){
        System.out.println("book delete ..." + id );
        return "{'module':'book delete'}";
    }

    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("book query ..." + id );
        return "{'module':'book query'}";
    }
}

使用postman测试

在这里插入图片描述

以查询所有和删除为例演示

查询所有

在这里插入图片描述
在这里插入图片描述

删除图书

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1151099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day 16 python学习笔记

静态方法 静态方法,只需要在方法前添加 staticmethod, 方法就可以不写形参self,可以通过实例对象.方法名调用,也可以通过类名.方法名调用 例: class Test:staticmethoddef test1():print("你好")def nums(se…

异步 AIMD 收敛

给出的一直都是同步 AIMD 收敛,所以简单,但不至于 bbr 单流情形退化成简陋。 给出一个异步 AIMD 收敛过程是必要的,可见,它同样是简洁优美的: 虽然我没有标注太多,它始终没有成为一团乱麻。 和同步 AIM…

Linux tar打包命令

Linux 系统中,最常用的归档(打包)命令就是 tar,该命令可以将许多文件一起保存到一个单独的磁带或磁盘中进行归档。不仅如此,该命令还可以从归档文件中还原所需文件,也就是打包的反过程,称为解打…

随机链表的复制(Java详解)

一、题目描述 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的…

英语——分享篇——常用人物身份

常用人物身份 家庭成员类 father 父亲 mother 母亲 grandmother(外)祖母 grandfather(外)祖父 son 儿子 daughter 女儿 uncle 叔叔,舅舅 aunt 婶母,舅母 brother 兄弟 sister 姐妹 nephew 侄子 niece…

Centos7下生成https自签名证书

1、安装openssl yum install openssl2、生成带密码的私有秘钥文件 openssl genrsa -des3 -out server.key 2048使用带密码的私有秘钥文件时需要输入密码,这里直接输入:123456 3、生成不带密码的私有秘钥文件 openssl rsa -in server.key -out serve…

考虑时空相关性的风电功率预测误差MATLAB代码

微❤关注“电气仔推送”获得资料(专享优惠) 风电功率预测置信区间误差分析拟合 1.风电功率预测误差--时空相关性 展示第一一个时间段的风电功率预测与实际风电功率值的比较。填充区域表示预测的不确定性,显示了95%置信区间内预测可能的范围…

vulnhub momentum 靶机复盘

环境配置 到学校了 原来的桥接配置要改 这里记录几个点备忘 1.virtualbox 桥接 未指定 重新安装驱动VBoxNetLwf.inf 2.配置完靶机启动失败 手动安装VBoxNetLwf.inf 不要用virtualbox自带的netlwfinstall 3.配置完nmap扫不到 rw init/bin/bash 进去看看网卡配置 信息收集…

【Java系列】HashMap

HashMap 介绍HashMap 类提供了很多有用的方法添加键值对(key-value)创建一个字符串(String)类型的 key 和字符(String)类型的 value:访问元素删除元素删除所有键值对(key-value)可以使用 clear 方法:计算大…

基于SSM的养老院管理系统

基于SSM的养老院管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVUE工具:IDEA/Ecilpse、Navicat、Maven 系统展示 摘要 养老院管理系统是一个基于SSM(Spring、Spring MVC、MyBatis&…

基于SSM的航空订票系统

基于SSM的航空订票系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 用户界面 管理员界面 摘要 基于SSM的航空订票系统是一款面向旅客、航空公司和旅…

FreeRTOS_信号量之二值信号量

目录 1. 信号量简介 2. 二值信号量 2.1 二值信号量简介 2.1.1 二值信号量无效 2.1.2 中断释放信号量 2.1.3 任务获取信号量成功 2.1.4 任务再次进入阻塞态 2.2 创建二值信号量 2.2.1 vSemaphoreCreateBinary() 2.2.2 xSemaphoreCreateBinary() 2.2.3 xSemaphoreCrea…

初学编程需要什么基础,零基础学编程系统化编程课程之编程工具箱文件名称操作构件属性

初学编程需要什么基础,零基础学编程系统化编程课程之编程工具箱文件名称操作构件属性 上图为 该编程工具构件的基本属性和方法 编程系统化课程总目录及明细,零基础学中文编程视频教程,点击进入了解详情。 https://blog.csdn.net/qq_29129627/…

2023年阿里云双11有什么优惠活动?详细攻略来了!

随着双十一的临近,阿里云也正式开启了双11大促,推出了“金秋云创季”活动,那么,2023年阿里云双11的优惠活动究竟有哪些呢?本文将为大家详细介绍。 一、阿里云双11活动时间 1、2023年10月27日-2023年10月31日&#xff…

基于蝠鲼觅食算法的无人机航迹规划-附代码

基于蝠鲼觅食算法的无人机航迹规划 文章目录 基于蝠鲼觅食算法的无人机航迹规划1.蝠鲼觅食搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用蝠鲼觅食算法来优化无人机航迹规划。 …

前端HTML

文章目录 一、什么是前端前端后端 前端三剑客1.什么是HTML2.编写前端的步骤1.编写服务端2.浏览器充当客户端访问服务端​ 3.浏览器无法正常展示服务端内容(因为服务端的数据没有遵循标准)4.HTTP协议>>>:最主要的内容就是规定了浏览器与服务端之间数据交互的格式 3. 前…

“第五十五天”

定点数: 原码的乘法: 乘法的符号位是单独处理的(通过对被乘数和乘数的符号位进行异或实现),数值位去绝对值进行运算。这里的乘法实际上是通过多次加法实现的。 这里被乘数是放在x寄存器,乘数放在MQ寄存器…

数据结构线性表——顺序表

前言:小伙伴们好久不见,从这篇文章开始,我们就要正式进入数据结构的学习啦。 学习的难度也将逐步上升,希望小伙伴们能够和博主一起坚持,一起加油!!! 目录 一.什么是线性表 二.什么…

便利店超市怎么做一个实用的微信小程序?

近年来,微信小程序商城越来越受到商家的青睐,因为它不仅提供了便捷的在线购物体验,而且不需要安装额外的应用。对于零编程经验的初学者,制作一个小程序商城可能会感到有些困难,但不用担心,本文将引导你一步…

Netty复习:(2)IdleStateHandler的用法

一、handler定义: package handler;import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter;public class MyChatServerHandler3 extends ChannelInboundHandlerAdapter {Overridepublic void userEventTriggered(…