如何为现有的Spring休息服务添加swagger?使用spingfox或swagger UI
答案 0 :(得分:0)
这是使用Spring Boot应用程序
首先使用spring创建一个普通的REST API,
1
在你的pom.xml中,确保你已经完全放弃了依赖关系。
import wx
import weakref
class SillyWindow(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, parent=None, title="Spawned Window")
self.Show()
class ExWindow(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, parent=None, title="Main Window")
self.panel = wx.Panel(self)
self.button = wx.Button(self.panel, label="Spawn window!")
self.Bind(wx.EVT_BUTTON, self.spawn, self.button)
self.txt = wx.TextCtrl(self.panel, pos=(0,100))
self.wind = None
self.timer = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.update, self.timer)
self.timer.Start(50)
self.Show()
def spawn(self,event):
if self.wind is None: # Preventing multiple spawning windows
self.wind = weakref.proxy(SillyWindow())
def update(self,event):
if self.wind is not None:
self.txt.SetValue(str(self.wind))
else:
self.txt.SetValue("None")
app = wx.App(False)
frame = ExWindow()
app.MainLoop()
不要忘记@ EnableSwagger2
请记住使用docket方法添加bean,否则它将添加垃圾api值
3)在你的休息控制器中
稍后会出现在招摇的UI中。
完成所有这些后,如果你运行你的春季启动应用程序和
这就是你应该得到api文档
像
对于Swagger UI
如果您收到类似于招摇UI的错误
无法从服务器读取。它可能没有适当的访问控制原点设置。
要解决此问题,您需要访问swagger的 首先为chrome /任何浏览器添加一个CORS插件 - 在此下添加您的网址 然后这会启动你的招摇UI,你必须能够在浏览器上看到输出。 如果您使用的是jackson,请确保使用正确的版本号 java.lang.NoSuchMethodError:com.fasterxml.jackson。 或者任何其他杰克逊相关的错误是由于Jackson核心版本与Jackson数据库依赖关系在pom.xml中的版本不匹配引起的。 确保正确使用pom。 就我而言, 问题是我得到了不兼容的jackson-core和jackson-databind版本 - jackson-core 2.0.5正在被引入,但我相信至少需要2.1.0。 异常的第一行告诉你它找不到方法JsonParser.getValueAsString(),查看2.0d的API文档,该方法确实不存在。它看起来像是在2.1.0中添加的。 因此,您需要修复依赖项 - 最有可能是排除2.0.5并包括2.1.0。 其次, 如果你必须使用这个Swagger生成的codegen或swagger codegen
答案 1 :(得分:0)
首先,您需要在pom.xml
中为Swagger添加maven依赖项<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>
然后添加SwaggerConfiguration类:
package com.mycompany.rest;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Created by smv on 10.09.2016.
*/
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
您只需要为springboot项目进行最小的Swagger UI配置。 如果您有一些问题,可以使用simular项目https://github.com/mv200580/springboot-rest来引用示例存储库。