Springfox-手动,以编程方式添加模型

时间:2019-01-21 14:26:06

标签: java spring swagger springfox

我想添加一个自定义控制器以扩展API描述符。 使用Spring Fox来定制现有模型非常容易。 但是我没有成功添加自定义API来从头开始拖延描述符。 一个例子胜于冗长的演讲。

我做了一个测试项目springfox-test

我有一个控制器(ItemController),它处理两个URL(/item/name/item/number)并返回两个不同的bean(ItemNameItemNumber)。

通过ApiListingScannerPlugin实现将两个操作添加到Swagger并不难,但是我不得不引用我的bean(ItemName和ItemNumber),而且我不知道如何以及在哪里可以描述这些bean。

ApiListingBuilderPlugin类似乎可以这种方式工作,但是我们只能访问API的生成器,然后我必须覆盖所有模型。

有没有办法让狐狸描述这些豆子?

1 个答案:

答案 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描述。