多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> 今天我们来学习Swagger庞大体系中的第一个工具:`Swagger Core`,想要学习这个,需要有`swagger-simaples`项目的帮助。`swagger-simaples`提供了很多解释swagger-core作用的例子,以便帮助你理解`Swagger Core`中的项目,跟我一探究竟吧! ## swagger-core [swagger-core](https://github.com/swagger-api/swagger-core)含有如下子项目: ![](https://box.kancloud.cn/2016-02-23_56cbdb25dc197.jpg) 针对不同的web框架,提供了多种针对性jar包。 ## swagger-simaples [swagger-samples](https://github.com/swagger-api/swagger-samples/tree/master/java)项目是为了针对我们的swagger-core的工具,编写的样例,方便大家理解的。里面还有`java`和`scala`的项目,目前我们只关注`java`的。 ![](https://box.kancloud.cn/2016-02-23_56cbdb2603d14.jpg) ## 源码编译 我将这两个项目的源码都clone到本地,然后编译,以确保正确导入到eclipse中 ![](https://box.kancloud.cn/2016-02-23_56cbdb2748e23.jpg) simaples项目源码编译: ![](https://box.kancloud.cn/2016-02-23_56cbdb278a6e9.jpg) ## 实例 我们找一个例子来实际看看`swagger-core`到底是做什么的? 我们来看[java-jaxrs](https://github.com/swagger-api/swagger-samples/tree/master/java/java-jaxrs)项目,按照github上的教程,启动完服务器后,我们在本地访问`http://localhost:8002`,打开后如下: ![](https://box.kancloud.cn/2016-02-23_56cbdb2866b69.jpg),这个时候你就可以看到利用`swagger-core`生成的api文档,具体这个界面里面的东西,我会在下一篇`swaager-ui`的文章来讲解。 那我们来看看他如何生成这个文档的,或者说如何将代码里的接口呈现在我们眼中的呢? ## 工作原理 `java-jaxrs`项目依赖的是`swagger-core`的`swagger-jaxrs`项目,由此可以看出`swagger-core`中的子项目是针对特定框架分开来开发的。而`swagger-jaxrs`项目针对的是[jaxrs](http://baike.baidu.com/link?url=D-yOgrIzkR4lZF50UNNqZT69yva7qRGOEi9V8Ao3eiZ4HqqeXRY8UMlCrToR-YDTthDzKjz3IksvjZ_yDnsNs_)技术开发的`web`项目。那么他是怎么通过你的项目生成`api`可视文档的呢? 方式是注解!`swagger-jaxrs`提供了很多可供调用的注解方式,方便研发在添加代码生成我们需要的接口信息,请看项目中的使用代码: ![](https://box.kancloud.cn/2016-02-23_56cbdb28b24ee.jpg) 这一段代码,生成的api信息如下: ![](https://box.kancloud.cn/2016-02-23_56cbdb29033f0.jpg) 具体的注解代表什么意思,有时间我会一一道来的。 想随时随地了解我的文章,请关注下面的微信公众号,我会不定时推送新文章 ![](https://box.kancloud.cn/2016-02-23_56cbdb2957435.jpg)