日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

在Java EE 7上骑骆驼–带有Swagger文档的REST服务

發(fā)布時(shí)間:2023/12/3 java 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Java EE 7上骑骆驼–带有Swagger文档的REST服务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

駱駝開箱即用。 Swagger集成就是其中之一。 不幸的是,大多數(shù)已經(jīng)存在的功能都嚴(yán)重依賴于Spring。 但這并不能阻止我們在普通的Java EE 7應(yīng)用程序中使用它們,因?yàn)橛袝r(shí)它只是服務(wù)器的輕量級變體。 但我不想再對此進(jìn)行討論。 相反,我認(rèn)為在所有情況下都有一種技術(shù)選擇,如果您運(yùn)行一個(gè)項(xiàng)目,而只是想將Camel與Java EE 7一起使用,并且需要REST服務(wù)并希望通過Swagger將它們記錄下來,那么這是適合您的文章。

在EE 7中引導(dǎo)駱駝

您需要做的第一件事是在單例啟動(dòng)bean中引導(dǎo)Camel。 我已經(jīng)寫了一篇有關(guān)如何執(zhí)行此操作的文章 。 另一個(gè)選擇是實(shí)際使用wildfly-camel子系統(tǒng) ,該子系統(tǒng)也可用,但這要求您使用JBoss WildFly8.x。

昂首闊步和駱駝休息依賴

到今天為止,Camel中的Swagger集成僅受Spring應(yīng)用程序支持。 因此,要使此工作正常進(jìn)行,我們必須比平時(shí)執(zhí)行一些配置。 但是我保證,它不會(huì)太復(fù)雜,只需一分鐘即可完成。 開始吧:

添加到基本Camel EE 7示例的第一件事是駱駝的其他依賴項(xiàng):

<dependency><groupId>org.apache.camel</groupId><artifactId>camel-servlet</artifactId></dependency><dependency><groupId>org.apache.camel</groupId><artifactId>camel-metrics</artifactId></dependency><dependency><groupId>org.apache.camel</groupId><artifactId>camel-swagger</artifactId></dependency><dependency><groupId>org.apache.camel</groupId><artifactId>camel-jackson</artifactId></dependency>

返回駝峰語境

如果無法使用其中的內(nèi)容,則需要實(shí)現(xiàn)自己的CdiRestSwagger-Camel上下文查找。 即將推出的Camel版本有一些烹調(diào)方法,但是現(xiàn)在我們必須自己做。 這非常簡單,因?yàn)槲覀冃枰采wRestSwaggerApiDeclarationServlet的一種方法。 除了簡單地返回注入的CdiCamelContext外,這沒有任何其他作用。

public class CdiRestSwaggerApiDeclarationServlet extends RestSwaggerApiDeclarationServlet {@InjectCdiCamelContext context;@Overridepublic CamelContext lookupCamelContext(ServletConfig config) {return context;} }

一些進(jìn)一步的配置

我們還沒有完成。 您還有更多配置要做。 由于Camel設(shè)計(jì)為可在許多不同的環(huán)境中運(yùn)行,并且沒有特定的Java EE 7版本,因此它仍然依賴于web.xml配置來映射映射servlet。 請?zhí)貏e注意CdiRestSwaggerApiDeclarationServlet初始化參數(shù)。 在這個(gè)簡單的示例中,我不必費(fèi)心找出它們,但仍然依靠它們。 因此,根據(jù)您在Maven構(gòu)建中設(shè)置的應(yīng)用程序的最終名稱,需要對其進(jìn)行調(diào)整。

<context-param><param-name>contextConfigLocation</param-name><!-- to use Java DSL --><param-value>classpath:camel-config.xml</param-value></context-param><!-- to setup Camel Servlet --><servlet><display-name>Camel Http Transport Servlet</display-name><servlet-name>CamelServlet</servlet-name><servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet<load-on-startup>1</load-on-startup></servlet><!-- to setup Camel Swagger api servlet --><servlet><!-- we are using our own swagger-cdi binding servlet --><servlet-class>org.apache.camel.component.swagger.CdiRestSwaggerApiDeclarationServlet<init-param><param-name>base.path</param-name><param-value>http://localhost:8080/camel/rest</param-value></init-param><init-param><param-name>api.path</param-name><param-value> http://localhost:8080/camel/api-docs </param-value></init-param><init-param><param-name>api.version</param-name><param-value>1.2.3</param-value></init-param><init-param><param-name>api.title</param-name><param-value>User Services</param-value></init-param><init-param><param-name>api.description</param-name><param-value>Camel Rest Example with Swagger that provides an User REST service</param-value></init-param><load-on-startup>2</load-on-startup></servlet><!-- swagger api declaration --><servlet-mapping><servlet-name>ApiDeclarationServlet</servlet-name><url-pattern>/api-docs/*</url-pattern></servlet-mapping><!-- define that url path for the Camel Servlet to use --><servlet-mapping><servlet-name>CamelServlet</servlet-name><url-pattern>/rest/*</url-pattern></servlet-mapping><!-- enable CORS filter so people can use swagger ui to browse and test the apis --><filter><filter-name>RestSwaggerCorsFilter</filter-name><filter-class>org.apache.camel.component.swagger.RestSwaggerCorsFilter</filter-class></filter><filter-mapping><filter-name>RestSwaggerCorsFilter</filter-name><url-pattern>/api-docs/*</url-pattern><url-pattern>/rest/*</url-pattern></filter-mapping>

足夠的配置–符合邏輯!

完成后,您需要一些邏輯。 我在這里使用的示例摘自Camel的官方示例,稱為camel-example-servlet-rest-tomcat 。 請注意,該示例同時(shí)包含了基于XML DSL的定義和基于Java DSL的其余服務(wù)的定義。 我只使用了Java DSL,特別是UserRouteBuilder類中定義的路由。

確保為用戶服務(wù)和用戶添加@Named批注,并添加從UserRouteBuilder到啟動(dòng)bean的路由。

context.addRoutes(new UserRouteBuilder());

這就對了。 現(xiàn)在,您可以通過訪問http:// localhost:8080 / camel / api-docs瀏覽瀏覽您的API。 如果要使用Swagger UI,則必須將其添加到應(yīng)用程序中。 該示例應(yīng)用程序包含構(gòu)建部分中的所有內(nèi)容,這是執(zhí)行此操作所需的。 因此,請查看完整的GitHub項(xiàng)目,以了解如何使用Swagger UI瀏覽API。

翻譯自: https://www.javacodegeeks.com/2014/12/riding-camel-on-java-ee-7-rest-services-with-swagger-documentation.html

總結(jié)

以上是生活随笔為你收集整理的在Java EE 7上骑骆驼–带有Swagger文档的REST服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。