Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Springfox-手动、以编程方式添加模型_Java_Spring_Swagger_Springfox - Fatal编程技术网

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

Java Springfox-手动、以编程方式添加模型,java,spring,swagger,springfox,Java,Spring,Swagger,Springfox,我想向swagger API描述符添加一个自定义控制器。 使用SpringFox很容易定制现有模型。 但我没有成功地从头开始将自定义API添加到swagger描述符中。 举个例子胜过长篇大论 我做了一个测试项目 我有一个控制器(ItemController),它处理两个URL(/item/name和/item/number),并返回两个不同的bean(ItemName和ItemName) 通过ApiListingScannerPlugin实现将这两个操作添加到Swagger并不难,但我必须引用我

我想向swagger API描述符添加一个自定义控制器。 使用SpringFox很容易定制现有模型。 但我没有成功地从头开始将自定义API添加到swagger描述符中。 举个例子胜过长篇大论

我做了一个测试项目

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

通过ApiListingScannerPlugin实现将这两个操作添加到Swagger并不难,但我必须引用我的bean(ItemName和ItemNumber),我不知道如何以及在何处描述这些bean

ApiListingBuilderPlugin类似乎就是这样工作的,但是我们只能访问API的构建器,然后我必须覆盖所有模型


有没有办法让spring fox来描述这些bean?

对于一个简单的API来说,
ApiListingScannerPlugin
似乎比必要的工作要多得多。您应该能够消除该插件,以及
simplerlhandlermapping
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将根据这些方法签名检测两个端点和两个模型,并相应地生成虚张声势的描述。

我发现了这一点:但通过docket添加我的模型。additionalModels()方法没有任何区别。当然我可以做到这一点,但我的git项目只是我需要做的一个例子。我需要为servlet/controller程序生成描述,因为URL和bean是动态的。我想知道Springfox是否是实现这一点的合适工具。您可以通过编写一个Swagger文件来节省时间(和代码)。相反,将控制器重构为常规形式可能比配置Springfox省力。