以petstore为例,
我试图取消引用/ pet中的$ Ref - >把操作当前: 模式 $ ref:#ninition / Pet
我正在尝试解决此问题,但无法从json文件中获取此文本。 这就是我所拥有的:
BodyParameter bp =(BodyParameter)param; System.out.println(((RefModel)bp.getSchema())。get $ ref());
我认为这会给我上面的文字,我可以稍后使用定义Map进行映射并解决它但得到以下错误:
线程中的异常" main" java.lang.ClassCastException:io.swagger.models.ModelImpl无法强制转换为io.swagger.models.RefModel
有没有人知道从body参数中提取这个字符串的方法,一般情况下,因为模式返回了一个Type Model? 我没有为swagger解析器,swagger inflector项目找到合适的文档源,因此可以通过源代码本身进行搜索。
答案 0 :(得分:4)
你会做以下事情:
Model model = bp.getSchema();
if(model instanceof RefModel) {
RefModel ref = (RefModel) model;
String simpleRef = ref.getSimpleRef();
Model concreteModel = swagger.getDefinitions().get(simpleRef);
}
您应该确认concreteModel
是ModelImpl
,但在petstore案例中,它会是。{/ p>