2

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

但是,我想做更多的事情。

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

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

泽西岛允许这种方法吗?使用 Jersey/Client 的客户对手会是什么样子?到目前为止,我的印象是我应该定义一个像类 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 )

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

提前感谢您的帮助。马可。

4

1 回答 1

3

您应该首先确定您的资源及其关系。如果您只处理星系和行星(例如),您的 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.

您将能够处理List为 POST 方法参数。
public void setPlanets ( List<Planet> planets ) {...}
接受多个复杂类型参数可能是不可能的。

于 2012-09-22T05:30:47.590 回答