gpt4 book ai didi

java - 如何在Java Webservice中执行多个操作

转载 作者:太空宇宙 更新时间:2023-11-04 14:34:25 26 4
gpt4 key购买 nike

我正在使用 Java/REST/Jersey Web 服务。

我有一个用户服务,

..../rest/users/get/username
..../rest/users/get/all

...我还想做其他事情,比如运动

.../rest/sports/get/sport
.../rest/sports/play..

我知道我可以将用户映射到 rest1 servlet,并将运动映射到 rest2 servlet,事实上这就是我现在所拥有的。但是,有没有一种方法可以在一个 servlet 中同时完成这两件事(用户和体育运动等等)?我只是不喜欢这样的事实:我将有 rest1,rest2,rest3,rest4...

..../rest/users/get/username
..../rest/sports/play
...

最佳答案

您可以使用模式定义服务端点。

您应该检查您的端点,因为 /rest/users/get/username 对我来说似乎没有任何意义。如果你想获取一些东西,你将使用 GET 方法。无需在 URL/端点中包含此内容。代码示例:

@Path("/{parameter: rest1|rest2|rest.n}/users")
public class Users {

// [rest1|rest2|...]/users/{userID}/username
@GET
@Path("/{userID}/username")
@Produces({MediaType.APPLICATION_JSON,...})
public Response getUserUsername(@PathParam("userID") String userID) {
// ... return username for specific user
}

// [rest1|rest2|...]/users/usernames
@GET
@Path("/usernames")
@Produces({MediaType.APPLICATION_JSON,...})
public Response getUsernames() {
// ... return all usernames
}

如果您确实想将其放在单个资源类中:

@Path("/{parameter: rest1|rest2|rest.n}")
public class Rest {

@GET
@Path("/users")
@Produces({MediaType.APPLICATION_JSON,...})
public Response getUsers() {
// ...
}

@GET
@Path("/sports")
@Produces({MediaType.APPLICATION_JSON,...})
public Response getSports() {
// ...
}

...但请不要这样做;)

关于java - 如何在Java Webservice中执行多个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25769531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com