JAVA如果不能扫描会怎么样_java – Swagger ReaderListener永远不会在扫描过程中被拾取...

我在与Swagger的resoure类相同的包中实现了一个ReaderListener.但是,生成Swagger文件时,从不使用此类.我尝试添加swagger.setBasePath(“/ empty”); to AfterScan()只是为了看它是否被调用,检查它是否改变了基本路径,但事实并非如此.关于我需要做些什么来确保在Swagger的扫描过程中选择这个课程的任何想法?顺便说一下,我正在使用Maven构建项目并安装生成的RPM,如果这有所不同的话.

@io.swagger.annotations.SwaggerDefinition

public class SwaggerDefinition implements ReaderListener {

@Override

public void beforeScan(Reader reader, Scanner scanner) {

}

@Override

public void afterScan(Reader reader, Scanner scanner) {

final Model model = new ModelImpl()

.name("EntryContainer")

.type("Object")

.required("entry")

.property("entry", new ObjectProperty());

model.setReference("#/definitions/entry");

final Model model1 = new ModelImpl()

.name("Entry")

.type("Object")

.property("first_name", new StringProperty())

.property("last_name", new StringProperty())

.required("first_name")

.required("last_name");

Map defs = new HashMap<>();

definitions.put("EntryContainer", model);

definitions.put("Entry", model1);

swagger.setDefinitions(definitions);

}

}

最佳答案 虽然这是一个老问题,但我想发布一些对我有用的东西.

这是我的ReaderListener实现.

import io.swagger.annotations.SwaggerDefinition;

import io.swagger.jaxrs.Reader;

import io.swagger.jaxrs.config.ReaderListener;

import io.swagger.models.Swagger;

@SwaggerDefinition

public class SwaggerBasePathModifier implements ReaderListener {

@Override

public void beforeScan(Reader reader, Swagger swagger) {

}

@Override

public void afterScan(Reader reader, Swagger swagger) {

// This is the purpose of my ReaderListener

// Yours can be different

swagger.setBasePath("/web-context/rest"); //

}

}

在我的情况下,Swagger没有扫描SwaggerBasePathModifier类.为了解决这个问题,我必须将其显式添加为我的其余应用程序初始化时要扫描的类之一.请参阅代码中的注释.

classes.add(SwaggerBasePathModifier.class);

这是完整的课程

@ApplicationPath("rest")

public class MyRESTApp extends Application {

public MyRESTApp() {

}

@Override

public Set> getClasses() {

Set> classes = new HashSet>();

// api end points

classes.add(MyAPIResource.class);

// swagger related

classes.add(io.swagger.jaxrs.listing.ApiListingResource.class);

classes.add(io.swagger.jaxrs.listing.SwaggerSerializers.class);

classes.add(SwaggerBasePathModifier.class);//

return classes;

}

}

这有助于我解决这个问题.希望这会有所帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值