Spring mvc 手动描述Swagger输入/输出模型(无Java域类)

Spring mvc 手动描述Swagger输入/输出模型(无Java域类),spring-mvc,swagger,springfox,Spring Mvc,Swagger,Springfox,我们使用SpringMVC构建了一个现有的RESTAPI。 我们现在正在查看是否可以使用Swagger(快速)生成内部文档 REST实现的问题是,我们确实使用SpringMVC将业务对象转换为json,但我们有自定义json转换器,基本上从业务对象创建抛弃json对象(键/值)。不幸的是,目前没有办法改变这一点。 同样的情况也适用于输入btw。 我们发送给客户机的基本上总是一个Hashmap 因为我们可以使用Springfox生成控制器及其方法,这是一个良好的开端。 但我们也希望记录输入/输出。

我们使用SpringMVC构建了一个现有的RESTAPI。 我们现在正在查看是否可以使用Swagger(快速)生成内部文档

REST实现的问题是,我们确实使用SpringMVC将业务对象转换为json,但我们有自定义json转换器,基本上从业务对象创建抛弃json对象(键/值)。不幸的是,目前没有办法改变这一点。 同样的情况也适用于输入btw。 我们发送给客户机的基本上总是一个Hashmap

因为我们可以使用Springfox生成控制器及其方法,这是一个良好的开端。 但我们也希望记录输入/输出。 有没有一种方法可以使用Swagger注释来手动记录输入/输出模型,而无需参考Java域类

另一种选择是,我们完全编写自己的低级招摇过市规范或研究其他解决方案。

为什么不使用spring?我认为这正是当您的服务模型不是真正的强类型时您可能需要的。它有两个优点

  • 您可以为每个端点编写测试
  • 这些模型将始终反映现实,而不是从外部描述您的模型并将其提供给springfox基础设施
  • 如果模型是由外部提供的,那么在没有任何测试的情况下,我们不可能保持这些变化与现实相符

这可能不在您的控制范围内,这就是为什么您会有这个问题,但要重新说明一个明显的问题,另一种选择是让您的模型反映客户的期望,而不是松散的goosey json键值转换。

Hi Dilip,我非常熟悉SpringRestDocs:-),但我目前需要生成swagger规范。不确定这是否容易。你有项目如何使用抛弃的例子吗?我们可以找到一种可能不容易或不可能的方法;-)创建抛弃JSONObject并使用例如json.put(“name”,name)来存储键/值是相当低级的。