dubbox-swagger集成

一.简介
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API简单实现。
在dubbox中使用swagger,需要解决的主要问题是如何将swagger的接口通过dubbox暴露出去,方法是修改了swagger-jaxrs包的源码以适配dubbox,已经上传了修改后的jar包到maven私服。

二.使用方法
1.项目中的maven配置中添加依赖

    <!--swagger 依赖开始-->
    <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-spring</artifactId>
      <version>3.0.7.Final</version>
    </dependency>
   <dependency>
      <groupId>io.swagger</groupId>
      <artifactId>swagger-core</artifactId>
      <version>1.5.8</version>
    </dependency>
    <dependency>
         <groupId>io.swagger</groupId>
         <artifactId>swagger-**-jaxrs</artifactId>
         <version>1.5.8</version>
         <scope>compile</scope>
       </dependency>
    <dependency>
      <groupId>org.reflections</groupId>
      <artifactId>reflections</artifactId>
      <version>0.9.10</version>
    </dependency>
    <!--swagger 依赖结束-->

2.web.xml中需要配置

<context-param>
    <param-name>resteasy.servlet.mapping.prefix</param-name>
    <param-value>/api</param-value>
  </context-param>

3.spring配置文件中需要添加

  <!-- 配置swaggerService-->
    <bean id="swaggerService" class="io.swagger.jaxrs.listing.AcceptHeaderApiListingResource" />
    <!-- Swagger Configuration -->
    <bean id="beanConfig" class="io.swagger.jaxrs.config.BeanConfig">
        <property name="schemes" value="http" />
         <!--扫描的包路径-->
        <property name="resourcePackage" value="io.swagger.sample"/>
        <property name="version" value="1.0.0"/>
        <!--swagger-ui页面上模拟请求地址-->
        <property name="host" value="localhost:7077/dubbox"/>
        <property name="basePath" value="/api"/>
        <property name="title" value="这个是标题啊"/>
        <property name="description" value="这里是描述呢"/>
        <property name="contact" value="**软件"/>
        <property name="license" value="Apache 2.0"/>
        <property name="licenseUrl" value="http://www.apache.org/licenses/LICENSE-2.0.html"/>
        <property name="scan" value="true"/>
    </bean>
     <!-- 配置swaggerService接口-->
    <dubbo:service interface="io.swagger.jaxrs.listing.SwaggerService" ref="swaggerService"/>

4.在GitHub上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目webapp下面,结果目录如下图所示:
这里写图片描述

5.修改index.html,将index.html中第39行的js中的http://petstore.swagger.wordnik.com/v2/swagger.json修改为http://localhost:7077/{projectname}/api/swagger.json到此为止,所有配置完成,启动你的项目,访问http://localhost:7077/{projectName}/index.html即可看到如下所示页面:
这里写图片描述

三.要点提示
1.swagger配置的端口需要和dubbox暴露的端口一致。
2.swagger demo中提供了filter和servlet做一些特殊的处理,需要的时候可以再进行配置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值