如何使用 Dropwizard 解析 RESTful API 参数

Kou*_*sha 5 java rest dropwizard jersey-2.0

假设我有:

@GET
public UserList fetch(@PathParam("user") String userId) {
    // Do stuff here
}
Run Code Online (Sandbox Code Playgroud)

现在,假设我有自己的类型userId,我们称之为UserId。是否可以将其解析StringUserId将其传递到fetch方法中,即:

@GET
public UserList fetch(@PathParam("user") UserId userId) {
    // Do stuff here
}
Run Code Online (Sandbox Code Playgroud)

我意识到一旦进入方法,我就可以解析字符串,但是我的方法获取我想要的类型会更方便。

Nam*_*man 2

好吧,我发现您尝试使用请求正文进行 GET 调用并不是很有帮助。请阅读保罗在这里的回答-

您可以使用 GET 发送正文,但不,这样做毫无用处

最好练习的是,进行 PUT 或 POST 调用(PUT 与 REST 中的 POST),如下所示 -

@POST
@Path("/some-path/{some-query-param}")
public Response getDocuments(@ApiParam("user") UserId userId,
                             @PathParam("some-query-param") String queryParam) {
    UserId userIdInstance = userId; // you can use the request body further
Run Code Online (Sandbox Code Playgroud)

注意-ApiParam使用的注释是从com.wordnik.swagger.annotations包中导入的。您可以根据您的输入来源类似地使用FormParam, 。QueryParam