文化网站模版,河南无限动力做网站怎么样,广州城市建设档案馆网站,网站建设技术咨询协议rest服务swagger骆驼开箱即用。 Swagger集成就是其中之一。 不幸的是#xff0c;大多数已经存在的功能都严重依赖于Spring。 但这并不能阻止我们在普通的Java EE 7应用程序中使用它们#xff0c;因为有时它只是更轻量级的处理方式。 但是我不想再对此进行讨论。 相反#xf… rest服务swagger 骆驼开箱即用。 Swagger集成就是其中之一。 不幸的是大多数已经存在的功能都严重依赖于Spring。 但这并不能阻止我们在普通的Java EE 7应用程序中使用它们因为有时它只是更轻量级的处理方式。 但是我不想再对此进行讨论。 相反我认为在所有情况下都有一种技术选择并且如果您跨项目运行则只想将Camel与Java EE 7一起使用并且需要REST服务并希望通过Swagger将它们记录下来那么这是适合您的文章。 在EE 7中引导骆驼 您需要做的第一件事是在单例启动bean中引导Camel。 我已经写了一篇有关如何执行此操作的文章 。 另一个选择是实际使用wildfly-camel子系统 该子系统也可用但这要求您使用JBoss WildFly8.x。 昂首阔步和骆驼休息依赖 到今天为止Camel中的Swagger集成仅受Spring应用程序支持。 因此要使此工作正常进行我们必须比平常多做一些事情并进行一些配置。 但我保证它不会太复杂只需一分钟即可完成。 开始吧 添加到基本Camel EE 7示例的第一件事是骆驼的其他依赖项 dependencygroupIdorg.apache.camel/groupIdartifactIdcamel-servlet/artifactId/dependencydependencygroupIdorg.apache.camel/groupIdartifactIdcamel-metrics/artifactId/dependencydependencygroupIdorg.apache.camel/groupIdartifactIdcamel-swagger/artifactId/dependencydependencygroupIdorg.apache.camel/groupIdartifactIdcamel-jackson/artifactId/dependency返回骆驼语境的招摇 如果无法使用其中的内容则需要实现自己的CdiRestSwagger-Camel上下文查找。 即将推出的Camel版本有一些烹调方法但是现在我们必须自己做。 这非常简单因为我们需要覆盖RestSwaggerApiDeclarationServlet的一种方法。 除了简单地返回注入的CdiCamelContext外这没有任何其他作用。 public class CdiRestSwaggerApiDeclarationServlet extends RestSwaggerApiDeclarationServlet {InjectCdiCamelContext context;Overridepublic CamelContext lookupCamelContext(ServletConfig config) {return context;}
}一些进一步的配置 我们还没有完成。 您还有更多配置要做。 由于Camel旨在在许多不同的环境中运行并且没有特定的Java EE 7版本因此它仍然依赖于web.xml配置来映射映射servlet。 请特别注意CdiRestSwaggerApiDeclarationServlet初始化参数。 在这个简单的示例中我不必费心找出它们但仍然依靠它们。 因此根据您在Maven构建中设置的应用程序的最终名称需要对其进行调整。 context-paramparam-namecontextConfigLocation/param-name!-- to use Java DSL --param-valueclasspath:camel-config.xml/param-value/context-param!-- to setup Camel Servlet --servletdisplay-nameCamel Http Transport Servlet/display-nameservlet-nameCamelServlet/servlet-nameservlet-classorg.apache.camel.component.servlet.CamelHttpTransportServletload-on-startup1/load-on-startup/servlet!-- to setup Camel Swagger api servlet --servlet!-- we are using our own swagger-cdi binding servlet --servlet-classorg.apache.camel.component.swagger.CdiRestSwaggerApiDeclarationServletinit-paramparam-namebase.path/param-nameparam-valuehttp://localhost:8080/camel/rest/param-value/init-paraminit-paramparam-nameapi.path/param-nameparam-value http://localhost:8080/camel/api-docs /param-value/init-paraminit-paramparam-nameapi.version/param-nameparam-value1.2.3/param-value/init-paraminit-paramparam-nameapi.title/param-nameparam-valueUser Services/param-value/init-paraminit-paramparam-nameapi.description/param-nameparam-valueCamel Rest Example with Swagger that provides an User REST service/param-value/init-paramload-on-startup2/load-on-startup/servlet!-- swagger api declaration --servlet-mappingservlet-nameApiDeclarationServlet/servlet-nameurl-pattern/api-docs/*/url-pattern/servlet-mapping!-- define that url path for the Camel Servlet to use --servlet-mappingservlet-nameCamelServlet/servlet-nameurl-pattern/rest/*/url-pattern/servlet-mapping!-- enable CORS filter so people can use swagger ui to browse and test the apis --filterfilter-nameRestSwaggerCorsFilter/filter-namefilter-classorg.apache.camel.component.swagger.RestSwaggerCorsFilter/filter-class/filterfilter-mappingfilter-nameRestSwaggerCorsFilter/filter-nameurl-pattern/api-docs/*/url-patternurl-pattern/rest/*/url-pattern/filter-mapping足够的配置–符合逻辑 完成后您需要一些逻辑。 我在这里使用的示例取自Camel的官方示例称为camel-example-servlet-rest-tomcat 。 请注意该示例同时包含了基于XML DSL的定义和基于Java DSL的其余服务的定义。 我只使用了Java DSL特别是UserRouteBuilder类中定义的路由。 确保为用户服务和用户添加Named批注并添加从UserRouteBuilder到启动bean的路由。 context.addRoutes(new UserRouteBuilder()); 这就对了。 现在您可以通过访问http// localhost8080 / camel / api-docs浏览浏览您的API。 如果要使用Swagger UI则必须将其添加到应用程序中。 该示例应用程序包含构建部分中的所有内容这是执行此操作所需的。 因此请查看完整的GitHub项目以了解如何使用Swagger UI浏览API。 翻译自: https://www.javacodegeeks.com/2014/12/riding-camel-on-java-ee-7-rest-services-with-swagger-documentation.htmlrest服务swagger