如何在同一Web服务中获取@PathParam和请求正文?

伊姆兰汗

我正在调用服务,并希望从路径参数和请求主体映射数据。Web服务调用是POST的类型。这里的问题是,如果我使用@Form,那么我只会得到路径参数。这是场景。

 Case1 Url :- Response updateDepartment(@Form @Valid Department departmentObject)

我获取的路径参数值是departmentNumber,departmentSNumber和departmentName,但没有获取包含addRequest [{}]和removeRequest [{}]的请求正文

如果我只使用@Valid的话

 Case 2 Url :- Response updateDepartment(@Valid Department departmentObject)

在这种情况下,我正在获取addRequest [{}]和removeRequest [{}]值。但对象,但现在缺少departmentNumber,departmentSNumber和departmentName

部门.java

public class Department
    {

    @PathParam(DEPTNUMBER_PARAM)
    private String deptNumber;

    @PathParam(DEPT_S_PARAM)
    private String deptSNumber;


    @PathParam(DEPARTMENT_NAME)
    private String departmentName;

    private List<String> addRole;

    private List<String> removeRole;

    }

如何同时映射@PathParam和请求主体值的形式。这是电话

http://localhost:8080/myweb/departments/1234/4321/finance
{
    "addRole": [
            101,
             181
    ],
    "removeRole": [
            42,
             12
    ]
   }
朱利亚诺

你为什么不使用这个:

Response updateDepartment(@Valid Department departmentObject, @PathParam("departmentNumber") String departmentNumber....)

您想要的将不起作用。我会尽力解释。首先,我认为您正在使用resteasy而不是JAX-RS参考,对吗?在RestEasy中@Form注释中说:

可以用作传入/传出请求/响应的值对象。您可以重复使用参数的字段/方法上的@ * Param批注,以从请求或编组到响应中解组,这取决于您使用的是服务器端JAX-RS还是Resteasy客户端框架

在您的情况下,您在参数的字段上使用@PathParam,这就是为什么要填充它的原因。

当您不使用@Form时,为参数指定的任何类型都会尝试与请求正文匹配,在您的情况下请求正文仅包含两个数组,而不包含PathParam。它不会查看路径参数的其他内容,因此会忽略您的注释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Google Cloud Function中获取原始请求正文?

如何在 Play 中获取原始请求正文?

如何在Laravel中获取HTTP请求正文内容?

如何在JMETER中打印或获取HTTP POST请求正文

如何在java中获取失败的HTTP请求正文?

如何在对Koa服务器的同一请求中立即设置和使用Cookie?

如何在同一服务器上同时发出HTTP和Websocket请求?

如何在请求被写入代理Netty服务器的outboundChannel中的同一句柄中获取响应byteBuf

如何使用 httptools 从请求中获取正文?

如何在同一请求中以角度和轻松的方式上传图像和数据?

如何在同一请求中传递主体@RequestBody和@RequestParam

如何在芬奇中绑定请求正文

如何在 Koa 中打印请求正文

如何在 Elasticsearch 中减少请求正文

如何在Java REST保证的HTTP请求中打印请求正文和标头?

Web UI代码和微服务在同一monorepo中?

如何在php中销毁来自同一服务器的会话和cookie?

如何在css中的同一行中获取图标和标题

如何在arangodb服务器中设置最大请求正文大小?

如何在Go http服务器中解析http Get请求正文?

如何在php中的Curl请求中仅获取响应的正文

CakePHP如何在同一请求中更改__()语言

如何在actix-web 1.0中间件中读取请求的正文?

如何在mailcore2中获取消息正文和最后一封电子邮件?

如何在Jersey 2中修改QueryParam和PathParam

无法从 python 中的 JSON WEB API 请求中获取正文

如何在同一页面上进行ajax调用ajax请求在同一页面中发送和获取

如何在SoapUI的模拟服务中获取请求的内容?

如何在我的服务 @PutMapping 中获取值请求 DTO