springboot系列-api接口请求实现

springboot HTTP请求接口实现

基于springboot 2.6.6

代码地址:github仓库地址

更多系列教程请关注公众号’coderlike’

如果觉得有帮助希望能关注下公众号
在这里插入图片描述

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.6</version><relativePath/> <!-- lookup parent from repository -->
</parent>

依赖

添加springboot-starter-web

添加lombok(简洁代码)

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.6.6</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version><scope>provided</scope></dependency>

配置文件 application.yml

配置端口(不配置时,默认是8080),按机器空闲端口随意配置,只要没被暂用就行

server:port: 8080

准备基础样例文件

新建package ‘controller和model’
新建TestController.java和User.java文件
完成后代码文件组织架构如下
在这里插入图片描述

相关注解

  • @RestController

    作用在类上,表示是一个restful风格的controller

  • @RequestMapping 路由定义

    1.注解在类上,表示整个类都以该值为前缀

    2.也可以注解在方法上,但是需要自行指定求情方式(GET/POST/DELETE…)

  • @GetMapping GET请求

  • @PostMapping POST请求

  • @DeleteMapping DELETE请求

  • …其他不常用的就不一一列出类

使用方式

见附录的TestController.java
接口测试可以使用Postman,也可以使用IDEA里优秀的插件

附录

User.java

package org.example.model;import lombok.Data;@Data
public class User {private String name;private int age;}

TestController.java

package org.example.controller;import org.example.model.User;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/api/test")
public class TestController {//GET请求/** 不带参数的HTTP GET请求*<a href="http://localhost:8080/api/test/v1">访问url</a>*/@GetMapping("v1")public String getTest(){return "hello test";}/** 带参数的HTTP GET请求(参数作为url路径的一部分)*<a href="http://localhost:8080/api/test/v1/zhangsan">访问url</a>*/@GetMapping("v1/{name}")public String getTest2(@PathVariable("name") String nameParam){return nameParam;}/** 带参数的HTTP GET请求*<a href="http://localhost:8080/api/test/v2?name=zhangsan">访问url</a>*/@GetMapping("v2")public String getTest3(@RequestParam("name") String nameParam){return "hello, my name is " + nameParam;}/** 带参数的HTTP GET请求*<a href="http://localhost:8080/api/test/v3?name=zhangsan&age=12">访问url</a>*/@GetMapping("v3")public String getTest4(@RequestParam("name") String nameParam,@RequestParam("age") String ageParam){return "hello, my name is " + nameParam + ", age is " + ageParam;}/** 带参数的HTTP GET请求,用实体对象接收参数*<a href="http://localhost:8080/api/test/v4?name=zhangsan&age=12">访问url</a>*/@GetMapping("v4")public String getTest4(User user){return "hello, from object, my name is " + user.getName() + ", age is " + user.getAge();}//POST请求/**不带参数的post请求**/@PostMapping("v1/post")public String postTest(){return "post without params";}/**带参数的post请求**/@PostMapping("v2/post")public String postTest(@RequestBody User user){return "post with params, name=" + user.getName() + ",age=" + user.getAge();}}

更多系列教程请关注公众号’coderlike’

如果觉得有帮助希望能关注下公众号
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

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

相关文章

PyCharm 2024.1 版本带来了一系列重要的更新和新特性

Hugging Face 模型和数据集的文档预览&#xff1a; 可直接在 IDE 中查看 Hugging Face 模型和数据集的文档&#xff0c;无需离开编辑环境。 本地全行代码补全&#xff1a; 对于前端框架&#xff0c;如 JavaScript 和 TypeScript&#xff0c;PyCharm 现在支持基于机器学习的全行…

魔众 文库配置异步转换

同步转换 系统默认使用同步转换&#xff0c;即用户上传文档提交接口瞬间&#xff0c;系统会立即进行转换。 同步转换容易造成页面卡顿&#xff0c;转换时间超长的情况下&#xff0c;系统接口会超时。 异步转换 系统支持异步转换&#xff0c;即用户上传文档提交接口瞬间&…

【算法】合并两个有序数组 - 双指针

题目 两个有序整数数组 nums1 和 nums2 及他们的元素个数 m、n&#xff0c;将 nums2 合并到 nums1 中&#xff0c;结果依然有序。 nums1 长度默认为 m n&#xff0c;没有元素的位置用 0 补齐。 原理 定义三个指针&#xff0c;分别指向 nums1 的最大元素(p1)、nums2 的最大元…

Elasticsearch索引之嵌套类型:深度剖析与实战应用

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! Elasticsearch是一个基于Lucene的搜索服务器&#xff0c;它提供了一个分布式、多租户能力的全文搜索引擎&#xff0c;并带有一个基…

烧坏两块单片机,不知道原因?

没有看你的原理图&#xff0c;以下是造成烧毁芯片的几个环节&#xff1a; 1. 最大的可能性是你的单片机电机控制输出与电机驱动电路没有隔离。 我的经验&#xff0c;使用STM32控制电机&#xff0c;无论是直流电机脉宽调制&#xff0c;还是步进电机控制&#xff0c;控制电路与…

libpcap抓包的原理是什么?

libpcap是一个开源库&#xff0c;用于捕获计算机网络上的数据包。它是网络数据包捕获的事实标准&#xff0c;并被许多工具使用&#xff0c;包括Wireshark和Tcpdump。libpcap的工作原理可以概括为以下几个关键点&#xff1a; 用户空间数据包捕获&#xff1a;libpcap在用户空间运…

PCA算法(Principal Component Analysis)揭秘

经典PCA算法 PCA算法的应用包括降维、有损数据压缩、特征抽取、数据可视化等。目前PCA算法有两个通用定义&#xff0c;能殊途同归&#xff0c;得到相同的结果。一方面&#xff0c;我们可以用正交投影来定义PCA&#xff0c;即将数据投影到更低维的线性子空间&#xff0c;也被称…

DolphinScheduler 答案整理,最新面试题

DolphinScheduler的架构设计是怎样的&#xff1f; DolphinScheduler的架构设计主要分为四个层次&#xff1a;前端界面层、API服务层、调度层和执行层。 1、前端界面层&#xff1a; 提供任务的定义、流程的设计、监控等功能&#xff0c;用户通过前端界面操作整个系统。 2、AP…

K倍区间-C++题解

题目描述 给定一个长度为 N 的数列&#xff0c;A1, A2,…AN​&#xff0c;如果其中一段连续的子序列 Ai,Ai1⋯Aj​ ( i ≤j ) 之和是 K 的倍数&#xff0c;我们就称这个区间 [i, j]是 K 倍区间。 你能求出数列中总共有多少个 K倍区间吗&#xff1f; 输入描述 第一行包含两个…

“揭秘循环购模式:快消品行业复购利器

大家好&#xff0c;我是吴军&#xff0c;来自一家专注于软件开发与商业模式设计的公司。我们的核心业务是构建商城系统&#xff0c;并为各企业提供全方位的商业模式解决方案。至今&#xff0c;我们已经成功打造了超过两百种独特的商业模式&#xff0c;助力众多企业实现商业目标…

C++的并发世界(九)——条件变量

0.绪论——单例模型 单例设计模式是一种常见的设计模式&#xff0c;用于确保某个类只能创建一个实例。由于单例实例是全局唯一的。因此在多线程环境中使用单例模式时,需要考虑线程安全的问题。 1.消费者设计模式 2.condition_variable使用步骤 ①准备好信号量 std::conditio…

Linux系统Docker部署Apache Superset并实现公网实时访问本地数据

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透&#xff0c;实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

linux中常用的查看日志命令

linux中常用的查看日志命令 tail命令 tail命令主要用于查看文件的末尾内容。 * **基本语法**&#xff1a;tail [选项] 文件 * **常用选项**&#xff1a; - -n [行数]&#xff1a;显示文件的最后指定行数。例如&#xff0c;tail -n 10 filename会显示文件的最后10行。 - …

电商API接口告诉你中国跨境电商何以“一路繁花”?

3月31日&#xff0c;启程跨境华东中心仓突破单日自营订单5000单&#xff0c;刷新连云港市跨境进口单日纪录。一季度&#xff0c;连云港市纳入“点点通”公共服务平台统计的跨境电商交易额达2.06亿元&#xff0c;同比增长77.03%。 连云港的“景象”只是中国跨境电商业态蓬勃发展…

结构化面试-有矛盾的人际沟通题

例题一&#xff1a; 你和小张一起值班&#xff0c;但是小张没来&#xff0c;刚好领导检查发现后批评了他&#xff0c;事后小张埋怨你&#xff0c; 认为你在领导面前表现&#xff0c;并在同事中传播&#xff0c;同事也觉得你不通人情&#xff0c;你怎么处理&#xff1f; 回答&a…

管廊ar实景可视化巡检提升安全性

在科技日新月异的今天&#xff0c;智慧工地ar远程巡检交互系统应运而生&#xff0c;它是ar开发公司深圳华锐视点综合运用了AR增强现实、5G通信、人工智能、物联网以及GPS北斗定位等前沿技术&#xff0c;为企业打造了一套全新的数字化巡检解决方案。不仅解放了巡检人员的双手&am…

防抖和节流(具体实现函数解析)

防抖 和 节流 是两个常用的 JavaScript 函数优化技巧&#xff0c;它们可以用来提高性能并减少不必要的函数调用。 防抖 防抖 函数会在一定时间内只触发一次&#xff0c;即使在该时间内函数被多次调用。 实现原理 防抖函数通常使用计时器来实现。当函数被调用时&#xff0c;…

Spring 5.x 源码之ClassPathBeanDefinitionScanner

Spring 5.x 源码之ClassPathBeanDefinitionScanner AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner的初始化是spring上线文初始化的起点&#xff0c;很多预加载的类会在spring接下来的初始化中发挥重要作用&#xff1b; 下面就是重点看看doScan()方法&#…

揭秘IP地理位置:从技术原理到隐私考量

在当今数字化的世界中&#xff0c;IP 地理位置已成为网络定位、广告定向和安全控制等领域的重要工具。然而&#xff0c;对于大多数人来说&#xff0c;IP 地理位置的工作原理以及与隐私之间的关系可能还有些模糊。本文将深入探讨 IP 地理位置的技术原理&#xff0c;以及与隐私相…

Vulnhub:MHZ_CXF: C1F

目录 信息收集 arp-scan nmap nikto WEB web信息收集 dirmap gobuster ssh登录 提权 获得初始立足点 系统信息收集 横向渗透 提权 信息收集 arp-scan ┌──(root㉿ru)-[~/桌面] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:50:56:…