SWAGGER:从body参数中取消引用$ ref

时间:2016-05-31 13:44:41

标签: swagger

以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项目找到合适的文档源,因此可以通过源代码本身进行搜索。

1 个答案:

答案 0 :(得分:4)

你会做以下事情:

Model model = bp.getSchema();
if(model instanceof RefModel) {
  RefModel ref = (RefModel) model;
  String simpleRef = ref.getSimpleRef();
  Model concreteModel = swagger.getDefinitions().get(simpleRef);
}

您应该确认concreteModelModelImpl,但在petstore案例中,它会是。{/ p>