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

如何在泽西岛制作一个接受多个复杂参数的POST方法?

连曜灿
2023-03-14

我刚刚学习了如何通过JAXB映射将单个复杂对象发送到基于Jersey的REST web服务:http://jersey.java.net/nonav/documentation/latest/xml.html#d4e820

然而,我想做得更多一点。

1)我可以有一个接受多个复杂对象的方法,所有这些对象都用JAXB注释吗?我的意思是:

@POST
public void setPlanetAndGalaxy ( Planet planet, Galaxy galaxy ) { ... }

泽西岛允许这样的方法吗?使用泽西岛/客户端,客户端对应部分会是什么样子?到目前为止,我的印象是我应该定义一个像GalaxyPlanet类一样的包装器{

2)POST方法可以有数组或集合参数吗?比如:

@POST
public void setPlanets ( Planet ... planets ) {...}

@POST
public void setPlanets ( Set<Planet> planets ) {...}

@POST
public void setPlanetsAndGalaxies ( Set<Planet> planets, Set<Galaxy> galaxies )

在这三种不同的情况下,客户端代码会是什么样子?

预先感谢任何帮助。马可。

共有1个答案

靳富
2023-03-14

您应该首先确定您的资源及其关系。例如,如果您只处理星系和行星,那么REST API路径将如下所示:

/galaxies/ --> You can deal with list of galxies here
/galaxies/{oneGalaxyId}  --> One galaxy
/galaxies/{oneGalaxyId}/planets --> Planets of a galaxy
/galaxies/{oneGalaxyId}/planets/{planetId} --> One planet among the planets of a galaxy.

您可以将< code>List作为POST方法参数来处理。< br>公共void setPlanets(列表

 类似资料:
  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 问题内容: 我在应用程序中使用Jersey 1.8。我正在尝试在服务器上使用数据。数据是类型的。 有没有一种方法可以将所有数据(可能是)收集到一个对象中。 我碰到泽西岛的。但是使用此功能需要我使用,如果参数数量巨大,这可能很乏味。也许这是一种方法: 上面的代码使用并呈现对象中的表单数据。 处理此错误可能会很容易出错,因为任何放错位置和split()都将返回损坏的数据。 我在大多数工作中都使用Uri

  • 考虑一个用例,我有一个类似 现在我怎么能有 2 种不同类型的案例 用例-1 我如何接受swagger中的类形式的上述查询参数,我知道我们可以在swagger中将其定义为不同的单独参数,如下所示 但是使用这个swagger创建了一个带有字符串或整数参数的rest方法,拥有这么多的多个参数可能不是一个好主意,所以我强烈希望它创建一个如下所示的类,而我的rest是用这个类对象生成的。我如何将这个类应用到

  • 我正在做一项创建Jersey客户端的任务。我用的是球衣1.18。目标URL如下所示。 我需要在我的网络资源中添加一个路径参数来调用这个URL。我看到了一个添加查询参数的选项,但没有为路径参数添加选项。我的代码看起来像这样。 谁能帮我一下吗?

  • 问题内容: 我正在为具有List作为查询参数的GET服务创建Jersey客户。根据文档,可以将List作为查询参数(此信息也位于@QueryParam javadoc中),将其检出: 通常,方法参数的Java类型可以: 是原始类型; 有一个接受单个String参数的构造函数; 3. 有一个名为valueOf或fromString的静态方法,该方法接受单个String参数(例如,参见Integer.

  • 因此,我有一个如下设置的解析器: 如果用户愿意,我需要让他们输入多个值: 但是每当我在列表中尝试多个值时,我都会得到一个EOF错误: 设置解析器来处理这样的事情的正确方法是什么?