dubbox-swagger集成

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

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

    
    <dependency>
      <groupId>org.jboss.resteasygroupId>
      <artifactId>resteasy-springartifactId>
      <version>3.0.7.Finalversion>
    dependency>
   <dependency>
      <groupId>io.swaggergroupId>
      <artifactId>swagger-coreartifactId>
      <version>1.5.8version>
    dependency>
    <dependency>
         <groupId>io.swaggergroupId>
         <artifactId>swagger-**-jaxrsartifactId>
         <version>1.5.8version>
         <scope>compilescope>
       dependency>
    <dependency>
      <groupId>org.reflectionsgroupId>
      <artifactId>reflectionsartifactId>
      <version>0.9.10version>
    dependency>
    

2.web.xml中需要配置

param>
    <param-name>resteasy.servlet.mapping.prefixparam-name>
    <param-value>/apiparam-value>
  param>

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

  
    <bean id="swaggerService" class="io.swagger.jaxrs.listing.AcceptHeaderApiListingResource" />
    
    <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"/>
        
        <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>
     
    <dubbo:service interface="io.swagger.jaxrs.listing.SwaggerService" ref="swaggerService"/>

4.在GitHub上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目webapp下面,结果目录如下图所示:
dubbox-swagger集成_第1张图片

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即可看到如下所示页面:
dubbox-swagger集成_第2张图片

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

你可能感兴趣的:(dubbox-swagger集成)