zoukankan      html  css  js  c++  java
  • RESTful风格的Web服务框架 Swagger

    Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

    1. 创建工程

     image001

    1.REST API

    1. import javax.ws.rs.Consumes;  
    2.   
    3. import javax.ws.rs.GET;  
    4.   
    5. import javax.ws.rs.POST;  
    6.   
    7. import javax.ws.rs.Path;  
    8.   
    9. import javax.ws.rs.PathParam;  
    10.   
    11. import javax.ws.rs.Produces;  
    12.   
    13. import javax.ws.rs.core.MediaType;  
    14.   
    15. import com.wordnik.swagger.annotations.Api;  
    16.   
    17. import com.wordnik.swagger.annotations.ApiOperation;  
    18.   
    19. @Path(“/user”)  
    20.   
    21. @Api(value = “/user”, description = “User REST for Integration Testing”)  
    22.   
    23. public interface UserService {  
    24.   
    25.     @GET  
    26.   
    27.     @Path(“/getUser/{username}”)  
    28.   
    29.     @Consumes(MediaType.APPLICATION_JSON)  
    30.   
    31.     @Produces(MediaType.APPLICATION_JSON)  
    32.   
    33.     @ApiOperation(value = “Get user details”, response = User.class)  
    34.   
    35.     public User getUser(@PathParam(“username”) String username);  
    36.   
    37.     @POST  
    38.   
    39.     @Path(“/saveUser”)  
    40.   
    41.     @Consumes(MediaType.APPLICATION_JSON)  
    42.   
    43.     @Produces(MediaType.APPLICATION_JSON)  
    44.   
    45.     @ApiOperation(value = “Save user details”, response = User.class)  
    46.   
    47.     public User getUser(User user);  
    48.   
    49. }  

    2.Swagger Config

    1. <!– Swagger API listing resource –>  
    2.     <bean id=“swaggerResourceJSON”  
    3.         class=“com.wordnik.swagger.jaxrs.listing.ApiListingResourceJSON” />  
    4.    
    5.     <!– Swagger writers –>  
    6.     <bean id=“resourceWriter”  
    7.         class=“com.wordnik.swagger.jaxrs.listing.ResourceListingProvider” />  
    8.     <bean id=“apiWriter”  
    9.         class=“com.wordnik.swagger.jaxrs.listing.ApiDeclarationProvider” />  
    10.    
    11.     <jaxrs:server address=“/sw” id=“swagger”>  
    12.         <jaxrs:serviceBeans>  
    13.             <ref bean=“swaggerResourceJSON” />  
    14.         </jaxrs:serviceBeans>  
    15.         <jaxrs:providers>  
    16.             <ref bean=“resourceWriter” />  
    17.             <ref bean=“apiWriter” />  
    18.         </jaxrs:providers>  
    19.     </jaxrs:server>  
    20.    
    21.     <bean id=“swaggerConfig”>  
    22.         <property name=“resourcePackage” value=“com.xymiyue ” />  
    23.         <property name=“version” value=“2.0″ />  
    24.         <property name=“basePath” value=“http://localhost:8080/SwaggerUI-Integration/rest” />  
    25.         <property name=“title” value=“Swagger UI Integration Sample” />  
    26.         <property name=“description”  
    27.             value=“Swagger UI Integration Sample for demonstrating its working.” />  
    28.         <property name=“contact” value=“hi@wangbaocai.cn” />  
    29.         <property name=“scan” value=“true” />  
    30.     </bean>  

    3.Swagger UI

    image002

    UI页面参考 https://github.com/Duttor/swagger-ui

    参考示例工程:

    https://github.com/saurabh29july/SwaggerUI-Integration

    http://wangbaocai.cn/?p=1204

  • 相关阅读:
    webService基本概念、元素及简单编码实现
    云服务器、vps、虚拟主机的区别
    SOAP和WSDL的一些必要知识
    密码学基础
    oracle执行计划
    dubbo学习笔记:快速搭建
    dubbo和zookeeper的关系
    查看wifi密码
    自动保存图表
    自定义颜色
  • 原文地址:https://www.cnblogs.com/softidea/p/5790150.html
Copyright © 2011-2022 走看看