> 今天我們來學習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信息如下:

具體的注解代表什么意思,有時間我會一一道來的。
想隨時隨地了解我的文章,請關注下面的微信公眾號,我會不定時推送新文章
