> 今天我们来学习Swagger庞大体系中的第一个工具:`Swagger Core`,想要学习这个,需要有`swagger-simaples`项目的帮助。`swagger-simaples`提供了很多解释swagger-core作用的例子,以便帮助你理解`Swagger Core`中的项目,跟我一探究竟吧!
## swagger-core
[swagger-core](https://github.com/swagger-api/swagger-core)含有如下子项目:

针对不同的web框架,提供了多种针对性jar包。
## swagger-simaples
[swagger-samples](https://github.com/swagger-api/swagger-samples/tree/master/java)项目是为了针对我们的swagger-core的工具,编写的样例,方便大家理解的。里面还有`java`和`scala`的项目,目前我们只关注`java`的。

## 源码编译
我将这两个项目的源码都clone到本地,然后编译,以确保正确导入到eclipse中

simaples项目源码编译:

## 实例
我们找一个例子来实际看看`swagger-core`到底是做什么的?
我们来看[java-jaxrs](https://github.com/swagger-api/swagger-samples/tree/master/java/java-jaxrs)项目,按照github上的教程,启动完服务器后,我们在本地访问`http://localhost:8002`,打开后如下:
,这个时候你就可以看到利用`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`提供了很多可供调用的注解方式,方便研发在添加代码生成我们需要的接口信息,请看项目中的使用代码:

这一段代码,生成的api信息如下:

具体的注解代表什么意思,有时间我会一一道来的。
想随时随地了解我的文章,请关注下面的微信公众号,我会不定时推送新文章

