如何将搜索条件声明为参数 REST API 方法
Posted
技术标签:
【中文标题】如何将搜索条件声明为参数 REST API 方法【英文标题】:How to declare search criteria as argument REST API method 【发布时间】:2020-07-21 13:06:23 【问题描述】:URI 看起来像 /api/v2/Employee?filter[search_key]=1234 我想为上述 URI 定义 REST API 方法,但我不知道如何使用 [search_key]
@Path("/Employee")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface EmployeeServices
@GET
public List<Employee> searchEmployee(@QueryParam("filter") String filter);
【问题讨论】:
您的问题无法理解,请描述您的问题并阅读如何在 *** 上正确发布问题。 【参考方案1】:请澄清您的问题。
您可以通过以下方式将 URL 中提供的路径参数用于您的应用程序:
@GET
@Path("/Employee/filter")
@Produces(MediaType.APPLICATION_JSON)
public List<Employee> searchEmployee(@PathParam("filter") String filter)
//your code
如果你想在这里做一些实际的后端处理(创建一个控制器类),那么这应该是一个类而不是一个接口。
如果您真的打算使用@QueryParam,请查看此帖子: When to use @QueryParam vs @PathParam
【讨论】:
thnaks 我的问题是如何为上面的 url 括号部分编写方法签名 [] 此答案中的 "filter" 可以替换为任何内容。您只需要在签名中获得与 URL 中相同的 QueryParam / PathParam。 "[" 是一个通用分隔符,如果不对其进行编码,您将无法在 URL 中使用它。 RFC 3986 定义了以下可用作分隔符的保留字符集。因此,它们需要 URL 编码: : / ? #/[]/@! $ & ' ( ) * + , ; = 在此处检查字符的 URL 编码:urlencoder.org以上是关于如何将搜索条件声明为参数 REST API 方法的主要内容,如果未能解决你的问题,请参考以下文章
您将如何使用 Spring Boot 处理仅具有可选查询参数的 REST API?
如何使用Map从Rest API中的URI绑定java方法的参数值