当前位置: 首页 > 知识库问答 >
问题:

如何从类控制器中的api招摇过市实现spring注释?

彭鹭洋
2023-03-14

我正在开发一个RESTfull web服务,它使用swagger和swagger-codegen-maven插件来创建模型、控件和api类(这是与spring annotatios的接口)。

pom中的插件。xml是下一个:

     <plugin>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-codegen-maven-plugin</artifactId>
            <version>2.2.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>C:\API.yaml</inputSpec>
                        <language>spring</language>
                        <configOptions>
                            <dateLibrary>java8</dateLibrary>
                            <useTags>true</useTags>
                            <sourceFolder>/</sourceFolder>
                        </configOptions>
                    </configuration>
                </execution>
            </executions>           
    </plugin>

当我想要创建一个新的控制器类(它不同于Swagger创建的控制器类)时,它实现了api类和方法的签名,但是,该类不会在方法的参数中写入注释(例如:@RequestParam、@RequestHeader等)

Api接口;

public interface Api{

    @RequestMapping(value = "/class-services",
        method = RequestMethod.GET)
    default ResponseEntity<XXXType> getClass(@ApiParam(value = "id" ,required=true) @RequestHeader(value="Id", required=true) String id) {
        // do some magic!
        return new ResponseEntity<XXXType>(HttpStatus.OK);
    }

}

控制器类:

@Controller
public class controller implements Api {

    public ResponseEntity<XXXType> getClass(String id) {
        // do some magic!
       return new ResponseEntity<XXXType>(HttpStatus.OK);
    }

}

这个结果在swagger ui中定义了每个参数,比如“query”。Swagger不区分标头参数类型。

我想知道当我实现Api类时,是否存在扩展接口旁边注释的方法(我想知道复制和粘贴符号方法)。

注意:我使用Java8用于LocalTime和LocalDate类。

当做

共有1个答案

江恩
2023-03-14

 类似资料:
  • 如何仅显示类型为GET in Swagger page的API并隐藏其他API?我发现属性ApiExplorerSettings(IgnoreApi=true)可以从Swagger页面隐藏API,但是我有很多API要隐藏,我需要一种根据其HTTP类型隐藏API的方法。我尝试过这种方法: 但没用

  • 我试图在我的微服务项目中生成一个单独的招摇过市,在Api网关中将所有服务招摇过市聚合成一个单独的招摇过市。为了实现这一点,我将遵循下一个教程https://objectpartners.com/2017/09/28/aggregate-services-into-a-single-swagger 这里的问题是,当我尝试设置绝对URL时,我收到的输出是未能加载API定义。未定义的http://loc

  • 我对使用SpringBoot和Springfox-boot-starter的swagger文档有一个问题。 我使用java.time.Instant java.util.Optio包裹 有没有办法让这个工作与可选的?感谢任何建议! Spring启动版本: Springfox-boot-starter版本

  • 我正在努力理解如何为API网关使用Swagger扩展: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html 我正在通过AWS CLI使用导入/导出RestAPI,但在命令行中找不到如何使用它们的任何示例。你能帮忙吗? 谢谢

  • 我正在开发一个有点传统的API(Spring Boot)——它使用的是openapi 2.0版,它还使用pom中的插件。xml。 我最近参加了一个领英学习课程,我们使用斯瓦格编辑器(本地使用Docker)编写api规范(openapi 3.0),并用您选择的任何语言“导出”服务器存根,在这种情况下JavaSpring。我注意到Controller实现的API类已经在这个存根中生成了。然而,当使用s

  • 我的pom.xml 招摇过市配置 服务器日志 它说映射: 但这些都不起作用(404): 如果我使用sping-fox较低版本,那么我将在我的日志中得到它已映射{[/v2/api-docs}],方法=[GET]。但是,我看不到在那里生成的任何json。