Dropwizard Rest API 端点操作

Dropwizard Rest API endpoint manipulation

我有一个 dropwizard 应用程序可以 POST/GET 查询信息。我有一个 @POST 方法,它用我的查询及其 11 个参数填充 arrayList。为简洁起见,我将示例缩减为仅显示 3 个参数。

@Path("/query")
public class QueryResource

@GET
@Produces(MediaType.APPLICATION_JSON)
@Timed
public List<Query> getQueries() {
    List<Query> queries = new ArrayList<Query>();
    logger.info("Calling get queries with {} method.");
    queries.add(new Query("b622d2c6-03b2-4488-9d5d-46814606e550", "eventTypeThing", "action"));
    return queries;

我可以通过 ARC 发送一个 get 请求,它会 return 成功并显示 json 查询。

当我尝试对特定 queryId 和 return 的特定参数发出 @GET 请求时,我 运行 遇到了问题。因此,

@GET
@Path("/{queryId}/action")
public Response getAction(@PathParam("queryId") String queryId, @PathParam("action") String action){
    logger.info("Get action by queryId {}");
    String output = "Get action: " + action;
    return Response.status(200).entity(output).build();

在其余客户端上,我向 https://localhost/query/b622d2c6-03b2-4488-9d5d-46814606e550/action

发出获取请求

我期待 return 特定 queryId 的操作类型,但 returning null。

您没有在方法的@Path 注释中将 "action" 声明为正确的参数。您需要将其更改为:

@Path("/{queryId}/{action}")