RESTful风格的Web服务框架 Swagger

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

 

  1. 创建工程

 

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

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

参考示例工程:

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

 

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

 

时间: 2024-08-02 16:47:42

RESTful风格的Web服务框架 Swagger的相关文章

Swagger 1.5.14 发布,RESTful 风格的 Web 服务框架

Swagger 1.5.14 已发布.v1.5.14 添加了一些功能,修复了一些问题. 新功能: 升级 logback 至 1.2.3 #2182 来自命名空间注释更好的支持 XML #2246 支持 Jackson 的 @JsonSerializeAs 注释 #2147 升级 .equals 和 .hashcode #2168 Support getter-less model scanning #2251 修复: Null check in setRequired(...) method i

使用sqlRest将数据库转换为REST风格的Web服务

随着 Web 2.0 的 发展,REST(Representational State Transfer)风格的 Web Service 得到普遍的应用,各种 REST 框架如雨后春笋般发展起来.当我们从事 Web 2.0 的实践时,越来越感觉到服务器端的 REST 服务在应对 MIS 一样的信息系统以及和数据库的交互时还存在很大的问题,比如效率低下,重复编码等. 例如,我们假定如下的场景:需要使用 Web 2.0 的技术来实现一个信息管理系统,这个系统的主要的任务就是对后台数据库的业务数据的操

关于二进制Web服务框架Hessian最简单代码实例

关于二进制Web服务框架Hessian最简单代码实例 在resin3.1 下测试通过 hessian版本: hessian-3.1.6.jar 官方地址: http://hessian.caucho.com/#Java http://hessian.caucho.com/ 步骤如下: 1. 接口定义 package com.yanek.study.hessian; public interface Hello {    public String hello(String name); }  

ServiceStack 4.5.10 发布,.NET Web 服务框架

ServiceStack 4.5.10 已发布,Service Stack 是一个高性能的 .NET Web 服务框架,简化了开发 XML.JSON.JSV 和 WCP SOAP Web 服务.它定义了符合 Martin Fowlers 数据传输对象模式,这是一个跨平台的 Web 服务框架. 为完全拥抱 Webpack ,该版本对 Angular4. React.Aurelia 和 Vue.js 模板进行了重写,将最新的黄金标准纳入现代单页面应用程序开发过程中,并集成到在 VS.NET 中以提供

archer-framework 1.0,RESful风格Web服务框架

archer-framework 1.0 发布了.archer-framework是一个旨在构建RESful风格WEB服务的轻量级框架. 主要特点 采用面向服务的设计,服务端提供的API可以为PC WEB端.移动端.微信公众号等不同的客户端提供服务. 易于构建前后端分离的应用,客户端和服务端通过服务端对外暴露的RESful API 进行交互,服务端开发人员可以专注于业务逻辑的开发,而客户端开发人员则可以采用自己熟悉的语言来做界面展现. 第三方系统可以方便的调用服务端提供的API,服务端提供的AP

分享一个Android和java调用RESTful Web服务的利器Resting

分享一个Android和java调用RESTful Web服务的利器Resting   当我们调用Web服务,往往是最终目标是取HTTP响应,将其转化为将在应用中呈现的值对象.Resting可以用来实现这一功能.Resting,在Java的一个轻量级的REST框架,可用于调用一个RESTful Web服务,并转换成响应来自客户端应用程序定制的Java对象.由于它的简单,resting是适合Android等手持设备.   resting目标•暴露简单的get(),post(),put()和dele

XML、Web服务和.NET框架(1)

.net框架|web|web服务|xml 应用程序开发技术正发生着一次质的飞跃,从根本上大幅度提高开发人员的生产效率,它开启了一道通向全新概念的应用程序的大门. 在过去,开发人员一直通过集成本地系统服务来构建应用程序.在这种模式下,开发人员可以访问丰富的开发资源并能严格控制应用程序的行为. 如今,开发人员在很大程度上已挣脱了这种模式的束缚,致力于构建具有复杂结构的n层系统,这种系统能将网络中各处的众多的应用程序进行集成,并大大提升应用程序的价值.这样,开发人员便可集中精力挖掘软件独特的商业价值,

XML、Web服务和.NET框架

.net框架|web|web服务|xml 应用程序开发技术正发生着一次质的飞跃,从根本上大幅度提高开发人员的生产效率,它开启了一道通向全新概念的应用程序的大门. 在过去,开发人员一直通过集成本地系统服务来构建应用程序.在这种模式下,开发人员可以访问丰富的开发资源并能严格控制应用程序的行为. 如今,开发人员在很大程度上已挣脱了这种模式的束缚,致力于构建具有复杂结构的n层系统,这种系统能将网络中各处的众多的应用程序进行集成,并大大提升应用程序的价值.这样,开发人员便可集中精力挖掘软件独特的商业价值,

Web服务到底是什么(转)

web|web服务 无论是微软.NET还是SunONE都是以Web服务(Web Services)为核心的,此外,各家公司也都纷纷把Web服务作为重点.Web服务到底是什么?看看各家公司的说法. 微软: Web服务是.NET的核心微软为Web服务下的定义是通过标准的Web协议可编程访问的Web组件."软件就是服务",这已经是软件发展的一个潮流了.未来的软件厂商就象现在的电信公司一样,用户可以按照时间来租用软件公司的服务."Web服务"(Web Services)可以