返回顶部
首页 > 资讯 > 后端开发 > Python >如何让Spring Rest 接口中路径参数可选
  • 772
分享到

如何让Spring Rest 接口中路径参数可选

2024-04-02 19:04:59 772人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录spring Rest接口路径参数可选RestFul风格传参Spring Rest接口路径参数可选 我有一个 Spring Rest 服务,其中有一个路径参数是可选的(实际情况是

Spring Rest接口路径参数可选

我有一个 Spring Rest 服务,其中有一个路径参数是可选的(实际情况是我原来将参数放到路径中,而另外一个前端通过 body 传给我)。按照传统的方式是把这个服务在代码里面分成两个方法,一个带路径参数,一个不带,但是这样看起来不优雅,让人疑惑。

我试着给 @PathVariable 注解加上 require=false 注解,但是不起作用,返回404错误。

下面的形式就是传统方式:


@RequestMapping(value = "/path/{id}")
public String getResource(@PathVariable String id) {
  return service.processResource(id);
} 
@RequestMapping(value = "/path")
public String getResource() {
  return service.processResource();
}

但是我真的不喜欢这种方式,臃肿。

从 Spring 4 and Java 8 开始(其实和 Java 8 关系不大),在一个方法里面实现可选路径参数变得很简单,如下所示,就是同时定义两个路由:


@RequestMapping(value = {"/path", "/path/{id}")
public String getResource(@PathVariable Optional<String> id) {
  if (id.isPresent()) {
    return service.processResource(id.get());
  } else {
    return service.processResource();
  }
}

确实,在一个方法里面统一业务要优雅得多。

RestFul风格传参

RestFul风格就是所有参数都由/传递,而不是传统的?xx&xx形式

例如:写一个Controller:


package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.WEB.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class RestfulController {
@RequestMapping("/add")
public String test(int a,int b, Model model){
int res = a+b;
model.addAttribute("msg","结果为"+res);
return "test";
}
}

可以看到出现a,b没找到的错误

在这里插入图片描述

按照传统方式传递参数:?a=1&b=2

在这里插入图片描述

那么按照Restful风格传递参数就应该:在方法参数值前加@PathVariable注解,并在url上直接绑定参数,可以同时设置Request的方法类型(GET、POST、DELETE、OPTIONS、HEAD、PATCH、PUT、TRACE)

@PathVariable:让方法参数的值对应绑定到一个url模板变量上


package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class RestfulController {
@RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.GET)
public String test(@PathVariable int a,@PathVariable int b, Model model){
int res = a+b;
model.addAttribute("msg","结果为"+res);
return "test";
}
}

再次开启Tomcat,并设定a=1,b=3:

/add/1/3传递参数

在这里插入图片描述

这就是restful风格传参

也可以通过变相的组合注解实现:

  • @PostMapping
  • @GetMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMapping

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 如何让Spring Rest 接口中路径参数可选

本文链接: https://lsjlt.com/news/155951.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何让Spring Rest 接口中路径参数可选
    目录Spring Rest接口路径参数可选RestFul风格传参Spring Rest接口路径参数可选 我有一个 Spring Rest 服务,其中有一个路径参数是可选的(实际情况是...
    99+
    2024-04-02
  • 怎么让Spring Rest接口中路径参数可选
    小编给大家分享一下怎么让Spring Rest 接口中路径参数可选,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Spring Rest接口路径参数可选我有一个 Spring Rest 服务,其中有一个路径参数是可选的(实际...
    99+
    2023-06-25
  • 如何在SpringMVC中配置路径参数和URL参数
    本篇文章为大家展示了如何在SpringMVC中配置路径参数和URL参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。SpringMVC中的路径参数就是指在路径中添加参数,用于实现伪静态是很好的。路径...
    99+
    2023-06-06
  • 如何在ASP和Spring中实现路径参数化开发技术?
    路径参数化开发技术是一种常用的Web开发技术,它可以让我们在开发Web应用时更加灵活地处理URL请求,提高Web应用的可维护性和可扩展性。在本文中,我们将介绍如何在ASP和Spring中实现路径参数化开发技术,并演示代码以帮助读者更好地理...
    99+
    2023-09-08
    spring path 开发技术
  • 如何让 PHP 函数接受可变数量的参数?
    php 中使用 ... 运算符创建可变参数函数,它将额外参数打包到一个数组中:函数语法:function functionname(...$argumentname) {}例如:sum(...
    99+
    2024-04-15
    php 可变参数
  • 如何优化 ASP 接口中的路径缓存?
    ASP(Active Server Pages)是一种动态网页技术,它使用服务器端脚本来动态生成网页内容,常用于构建Web应用程序。在ASP中,路径缓存是一种优化技术,它可以提高接口性能并减少服务器负载。本文将介绍如何优化ASP接口中的路径...
    99+
    2023-08-29
    接口 path 缓存
  • Go中的接口如何实现实时路径?
    在Go语言中,接口是一种非常重要的概念。通过接口,我们可以实现多态,使得同一种方法可以适用于不同的类型。而实时路径则是网络编程中非常重要的一个概念,它可以帮助我们追踪网络中的数据流向,从而更好地进行网络管理和优化。那么,在Go中,如何实现实...
    99+
    2023-09-01
    接口 实时 path
  • 如何使用PHP函数来操作路径接口?
    当我们在进行Web开发时,经常需要操作文件路径。PHP中提供了一些非常有用的函数来帮助我们操作路径接口。在本篇文章中,我们将学习如何使用PHP函数来操作路径接口,以帮助我们更好地管理文件和目录。 realpath()函数 realpat...
    99+
    2023-07-08
    函数 path 接口
  • HTTP请求路径中的PHP编程算法:如何处理路径参数?
    在Web开发中,HTTP请求路径是非常重要的一部分。它可以用来指定请求的资源,包括HTML页面、图片、CSS、JavaScript等等。在HTTP请求路径中,有时会包含一些参数,这些参数可以用来传递一些额外的信息。在PHP中,我们可以使用...
    99+
    2023-08-18
    编程算法 http path
  • PHP编程算法:如何解决HTTP路径中的路径参数问题?
    在Web开发中,我们经常需要从URL中获取参数来完成一些操作。对于查询参数(query string),PHP提供了$_GET和$_POST两个超全局变量来获取,但是对于路径参数(path parameter),PHP并没有提供直接获取的...
    99+
    2023-08-18
    编程算法 http path
  • Python 中如何使用接口来操作文件路径?
    在 Python 的开发中,文件操作是必不可少的一部分。而在文件操作中,对文件路径的处理也是非常重要的一环。Python 中提供了许多接口来操作文件路径,这些接口可以让我们更加方便地处理文件路径,避免了手动处理路径所带来的错误。 一、os...
    99+
    2023-10-09
    接口 path 日志
  • 如何在PHP函数中使用Path接口来操作文件路径?
    PHP是一种非常流行的服务器端编程语言,其强大的功能和易于学习的特点使得它成为了很多Web开发者的首选。在PHP中,文件操作是一个非常重要的功能,而Path接口则是PHP文件操作的核心。 Path接口是PHP的一个文件路径操作接口,它提供了...
    99+
    2023-07-08
    函数 path 接口
  • 如何在Go中实现实时路径监测的接口?
    在网络应用中,实时路径监测是一个非常重要的功能。它可以帮助开发人员在应用运行过程中实时监测路径的变化,以便做出及时的响应和调整。在Go语言中,我们可以使用一些库和工具来实现实时路径监测的接口,本文将为您介绍一种简单而实用的方法。 首先,我...
    99+
    2023-09-01
    接口 实时 path
  • HTTP请求路径中的PHP编程算法:如何处理路径中的重复参数?
    在进行Web开发时,我们通常会使用HTTP协议来传递数据。其中,URL中的参数是非常常见的一种方式。在PHP中,我们可以通过$_GET、$_POST等超级全局变量来获取这些参数。然而,在实际开发中,我们有时会遇到重复的参数,这会给我们带来...
    99+
    2023-08-18
    编程算法 http path
  • Spring Boot/VUE中如何实现路由传递参数
    这篇文章将为大家详细讲解有关Spring Boot/VUE中如何实现路由传递参数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在路由时传递参数,一般有两种形式,一种是拼接...
    99+
    2024-04-02
  • 如何实现Spring Boot接口参数的加密解密操作
    这篇文章主要介绍如何实现Spring Boot接口参数的加密解密操作,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!加密解密本身并不是难事,问题是在何时去处理?定义一个过滤器,将请求和响应分别拦截下来进行处理也是一个办...
    99+
    2023-06-14
  • 如何在Jersey中使用Restful接口获取参数
    如何在Jersey中使用Restful接口获取参数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.@PathParam使用该注释获取参数时可以获取URI中制定规则的参数例如:...
    99+
    2023-06-15
  • Laravel如何同时接收路由参数和查询字符串中的参数
    这篇文章主要介绍Laravel如何同时接收路由参数和查询字符串中的参数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Laravel同时接收路由参数和查询字符串中的参数Laravel捕捉路由参数Laravel允许在co...
    99+
    2023-06-06
  • 如何在拦截器中获取url路径里面@PathVariable的参数值
    目录在拦截器中获取url路径里@PathVariable参数值解决办法示例接口完整示例spring @PathVariable:请求路径url 上有变量值,通过@PathVariab...
    99+
    2024-04-02
  • Spring框架中如何实现接口的数组操作?
    Spring框架是一个非常流行的开源Java应用程序框架,它提供了很多现成的解决方案,以帮助开发人员更快地构建高质量的应用程序。在Spring框架中,接口的数组操作是一个非常常见的需求。本文将介绍如何在Spring框架中实现接口的数组操作。...
    99+
    2023-08-09
    接口 spring 数组
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作