当前位置: 首页 > 知识库问答 >
问题:

如何在一个类中接受多个参数名不同的查询参数

唐信瑞
2023-03-14

考虑一个用例,我有一个类似

/api/v1?credentials="test"&age=20&gender=male

现在我怎么能有 2 种不同类型的案例

用例-1

我如何接受swagger中的类形式的上述查询参数,我知道我们可以在swagger中将其定义为不同的单独参数,如下所示

     parameters:
        - in: query
          name: credentials
          schema:
            type: string
        - in: query
          name: age
          schema:
            type: integer
        - in: query
          name: gender
          schema:
            type: string

但是使用这个swagger创建了一个带有字符串或整数参数的rest方法,拥有这么多的多个参数可能不是一个好主意,所以我强烈希望它创建一个如下所示的类,而我的rest是用这个类对象生成的。我如何将这个类应用到我的控制器层?

class Query{
  String name;
  Integer age;
  String gender;
}

使用案例2

我知道在上面的url查询参数中有另一个整数,但是现在,让我们考虑我将接受所有这些参数为一个字符串的形式,并在以后根据我的要求对它们进行类型转换。

注意-我不想要具有多个值的相同名称参数,我希望所有具有或不具有相同名称的查询参数都映射到一个字符串到字符串键值对中。所以假设当我必须访问它们时,我会直接使用map.get("age")

共有1个答案

孔和风
2023-03-14

根据 REST 将这些参数作为查询参数就可以了。处理请求的控制器方法将很好地接受 3 个值作为 int 或 String。对于登录,更好的选择是使用 POST 方法,具体取决于您希望实现的目标。

从您的示例中,您确实应该检查最先进的身份验证。您可以考虑 JWT,它可以安全地包装所有这些值,并且实际上是为此而设计的。使用凭据登录用户后,将创建 JWT,然后客户端可以使用它进行后续交互,只要它有效。

 类似资料:
  • 我想知道EXPRESS如何解析同名的多个查询参数;我在任何地方都找不到任何有用的参考资料。我想具体了解EXPRESS,它将如何处理这个URL

  • 问题内容: 在我正在使用的Web服务中,我需要使用查询参数来实现一个URI,如下所示: 要对其进行分解,我需要能够使用查询参数来指定多个/所有商店中的数据以及这些商店中多个/所有项目的数据。到目前为止,我已经能够很好地实现一个查询参数以提取项目数据,但是我对如何实现更多查询一无所知,而且似乎找不到我之前所见过的资源。通过此实现。 到目前为止,我所采用的方法是 这对于一项很有效,如果我不在URI中键

  • 问题内容: 我以前用C编写过代码,但是我是Java的新手,我正在为OOP类编写教程,这几乎是我第一次正式学习该语言。 在本教程中,我的教授制作了一个类,该类将用于测试我必须自己做的I / O助手类 (顺便说一句,该教程是(a)可选的,(b)不是用于标记的,所以我是(c)我以前从未使用过Java,而我的许多其他同学都没有使用过Java,所以我落后了)。 无论如何。在他制作的测试类中,他将方法“ ge

  • 注意2名为“sort”的查询参数。我试图用空手道创建这些查询字符串参数,但在查询字符串中只创建了最后一个“sort”参数。下面是我尝试这样做的方法: 和: 和:

  • 我刚刚学习了如何通过JAXB映射将单个复杂对象发送到基于Jersey的REST web服务:http://jersey.java.net/nonav/documentation/latest/xml.html#d4e820 然而,我想做得更多一点。 1)我可以有一个接受多个复杂对象的方法,所有这些对象都用JAXB注释吗?我的意思是: 泽西岛允许这样的方法吗?使用泽西岛/客户端,客户端对应部分会是什

  • 问题内容: 我需要在一个查询中计算两列中某些数据的出现总数。数据库位于SQL Server 2005中。 例如,我有此表: 我需要查询一个结果: 1.名为“约翰”的人数 2.年龄超过30岁的“约翰”的人数。 我可以通过这种方式对子查询进行操作(这只是示例): 但这非常慢,我正在寻找更快的方法。 与使用子查询相比,您是否知道一种更好的方法来计算一个查询中的少量计数? 问题答案: 使用CASE语句,您