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}")
我有一个 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}")