生成示例客户端和服务器时发生Restlet Studio错误422
您好,我正在使用restletstudio从您的示例宠物商店API生成一个客户机和服务器。以下是我的步骤:生成示例客户端和服务器时发生Restlet Studio错误422,rest,jax-rs,restlet,swagger,restlet-2.0,Rest,Jax Rs,Restlet,Swagger,Restlet 2.0,您好,我正在使用restletstudio从您的示例宠物商店API生成一个客户机和服务器。以下是我的步骤: 生成Java服务器(JAX-RS) 编辑pom.xml以生成war文件 mvn包 作为webapp部署到jetty服务器 通过使用浏览器点击URL来验证其是否有效: 答复: {"code":4,"type":"ok","message":"magic!"} 在我用Java生成客户机之前,我认为这是可行的 我将端点从webnik更改为我的Web服务器 制作一个简单的主方法 public
{"code":4,"type":"ok","message":"magic!"}
public static void main(String[] args) {
try {
FindPetByTagsClientResource a = new FindPetByTagsClientResource();
Pet represent = a.represent();
} catch (Exception ex) {
Logger.getLogger(APIPetStore.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args) {
try {
FindPetByTagsClientResource a = new FindPetByTagsClientResource();
a.getClientResource().get().write(System.out);
} catch (Exception ex) {
Logger.getLogger(APIPetStore.class.getName()).log(Level.SEVERE, null, ex);
}
}
{"code":4,"type":"ok","message":"magic!"}
关于如何解决这个问题有什么想法吗?事实上,JAXRS服务器框架实际上是一个服务器框架;-)这意味着它实际上并没有根据客户端发回正确的内容。如果查看服务器代码,您总是会看到:
public Response findPetsByTags(@ApiParam(value = "Tags to filter by") @QueryParam("tags") List<String> tags)
throws NotFoundException {
// do some magic!
return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
}
我将看看我们是否可以改进服务器端的这一点。事实上,Restlet Studio在内部使用swagger2 codegen工具链来生成此服务器框架
希望有帮助,
蒂埃里
@GET
@Path("/findByTags")
@ApiOperation(value = "Finds Pets by tags", notes = "Finds Pets by tags", response = Pet.class, responseContainer = "List")
@ApiResponses(value = {
@ApiResponse(code = 400, message = "") })
public Response findPetsByTags(@ApiParam(value = "Tags to filter by") @QueryParam("tags") List<String> tags)
throws NotFoundException {
// do some magic!
Pet pet = new Pet();
pet.setId(10);
pet.setName("My pet");
pet.setStatus("status");
List<Tag> actualTags = new ArrayList<Tag>();
Tag tag1 = new Tag();
tag1.setId(1);
tag1.setName("tag1");
actualTags.add(tag1);
Tag tag2 = new Tag();
tag2.setId(2);
tag2.setName("tag2");
actualTags.add(tag2);
pet.setTags(actualTags);
return Response.ok().entity(pet).build();
}