java - 使用resteasy/jax-rs从请求有效负载接收两种类型的数据

标签 java jax-rs resteasy

我通过 http 请求将 json 格式的数据发送到我的 Java 服务器。我在接收具有类似功能的请求方面取得了巨大成功

Boolean deleteUsers(List<Long> userIds) {
    // ...
    return true;
}

我在 Java 服务器上使用 RESTEasy,它很乐意将请求的有效负载转换为此 List<Long>太方便了。

现在我想发送一个字符串一个数字列表!理想情况下,我的接收函数看起来像

Boolean deleteUsers(String string, List<Long>userIds) {
    // ....
    return true;
}

唉,RESTEasy 似乎不明白我的意思,并且在负载上卡住了。

如何从有效负载接收多种类型的数据?

最佳答案

根据您的具体用例,您可以简单地将第一个参数(“字符串”)添加到 @Path 注释,例如

@POST
@Path("{string:.*}")
@Consume(MediaType.APPLICATION_JSON)
@Produce(MediaType.APPLICATION_JSON)
Boolean deleteUsers(@PathParam("string") String string, List<Long>userIds) {
...
}

这将产生以下 URL 形式:

/service/<string>/

有效负载包含您的用户 ID 列表(作为 json)。

正如您可能意识到的,建议使用 @POST 方法类型,因为服务构造方法不是幂等的。否则,@DELETE 会受到青睐。

关于java - 使用resteasy/jax-rs从请求有效负载接收两种类型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7827926/

相关文章:

java - 多语言 Android 应用程序开发

java - Spring @RequestMapping 日志消息?

java - 字段的特定 MessageBodyWriter

Java:从后端向不同网站发送POST请求

java - 在 swing 中实现 JTreeTable

java - 在 JBoss 社区 AS 7 中部署简单的 Jax-RS 示例

java - 如何全局忽略带有 restesy 响应的空字段?

java - RESTEASY 抛出查询参数为空的异常

java - 多维数组的使用