我想添加一个自定义控制器以扩展API描述符。 使用Spring Fox来定制现有模型非常容易。 但是我没有成功添加自定义API来从头开始拖延描述符。 一个例子胜于冗长的演讲。
我做了一个测试项目springfox-test
我有一个控制器(ItemController),它处理两个URL(/item/name
和/item/number
)并返回两个不同的bean(ItemName
和ItemNumber
)。
通过ApiListingScannerPlugin实现将两个操作添加到Swagger并不难,但是我不得不引用我的bean(ItemName和ItemNumber),而且我不知道如何以及在哪里可以描述这些bean。
ApiListingBuilderPlugin类似乎可以这种方式工作,但是我们只能访问API的生成器,然后我必须覆盖所有模型。
有没有办法让狐狸描述这些豆子?
答案 0 :(得分:0)
ApiListingScannerPlugin
似乎比简单API所需的工作还要多。您应该能够删除该插件以及SimpleUrlHandlerMapping
bean,并像这样实现控制器。
@RestController
public class ItemController {
@GetMapping("/item/name")
public ItemName foo(@RequestParam("value") ItemName name) {
return name;
}
@GetMapping("/item/number")
public ItemNumber bar(@RequestParam("value") Integer number) {
return new ItemNumber(number);
}
}
Springfox将基于这些方法签名检测两个端点和两个模型,并应相应地生成Swagger描述。