招摇过市:如何处理包含java';对象';班
我试图理解如何在“swagger”中指定响应实际上是类的对象招摇过市:如何处理包含java';对象';班,java,swagger,Java,Swagger,我试图理解如何在“swagger”中指定响应实际上是类的对象“ViewObject.java”,其中包含类的对象“object”,在下面的示例中包含“App.java”。 在下面的代码中,当我将@ApiOperation指定为“response=ViewObject.class”时,无法确定ViewObject中的“result”字段包含“App”实例 查看对象中的所有字段都是私有的,感谢@Ron的评论。我尝试将字段更改为“public”。不走运。由于“result”的类型为“Object”
“ViewObject.java”
,其中包含类的对象“object”,在下面的示例中包含“App.java”
。
在下面的代码中,当我将@ApiOperation
指定为“response=ViewObject.class”
时,无法确定ViewObject中的“result”字段包含“App”实例
查看对象中的所有字段都是私有的,
感谢@Ron的评论。我尝试将字段更改为“public”。不走运。由于“result”的类型为“Object”,因此它无法检测其中的底层类。有没有办法使用Swagger API指定它将包含哪个类?这是我在swagger ui中看到的:-------------------------------------------------------------ViewObject{message(string,可选),status(FreemoStatus,可选)=['EXCEPTION'或'SUCCESS'或'VALIDATION\u ERROR'],result(Object,可选)}-------------------------------------------------------------------您可以使用@ApiModelProperty#dataType()
重写字段的类型。@Ron:在这种情况下,我必须将其添加到ViewObject.java类中的“result”字段right。问题在于“ViewObject”被多个rest调用使用,并且对于每个调用,“result”将填充不同的类实例。与本例类似,“result”包含“App”类实例,但它也可以包含其他内容。在进行“getApp()”方法调用时,是否有一种方法可以指定它?也许使用一些注释?恐怕那听起来像是糟糕的编码。那你为什么不使用泛型呢ViewObject
,然后private T result代码>?ViewObject
中的所有字段都是私有的……感谢@Ron的评论。我尝试将字段更改为“public”。不走运。由于“result”的类型为“Object”,因此它无法检测其中的底层类。有没有办法使用Swagger API指定它将包含哪个类?这是我在swagger ui中看到的:-------------------------------------------------------------ViewObject{message(string,可选),status(FreemoStatus,可选)=['EXCEPTION'或'SUCCESS'或'VALIDATION\u ERROR'],result(Object,可选)}-------------------------------------------------------------------您可以使用@ApiModelProperty#dataType()
重写字段的类型。@Ron:在这种情况下,我必须将其添加到ViewObject.java类中的“result”字段right。问题在于“ViewObject”被多个rest调用使用,并且对于每个调用,“result”将填充不同的类实例。与本例类似,“result”包含“App”类实例,但它也可以包含其他内容。在进行“getApp()”方法调用时,是否有一种方法可以指定它?也许使用一些注释?恐怕那听起来像是糟糕的编码。那你为什么不使用泛型呢ViewObject
,然后private T result代码>?
@GET
@Path("/app/{appCode}")
@Produces("application/json")
@ApiOperation(value = "Get App Configuration", response = ViewObject.class)
public @ResponseBody ViewObject getApp(@PathParam("appCode") String appCode) throws FreemoException,Exception {
App app = new App();
app.setAppCode(appCode);
ViewObject viewObject = new ViewObject();
App appLoadedFromDB = appService.getApp(app.getAppCode()); //Load App from DB
viewObject.setStatus(FreemoStatus.SUCCESS);
viewObject.setResult(appLoadedFromDB);
return viewObject;
}
ViewObject.java:
public class ViewObject extends FreemoModel{
private FreemoStatus status;
private String message;
private Object result;
}