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

OpenAPI生成的Spring Boot服务器无法验证所需的财产

林和煦
2023-03-14

我使用OpenAPI生成器来生成基于YAML文件的Spring代码,如下所示。但是我注意到Spring Boot验证对必需属性不起作用。

OpenAPI生成器CLI版本:5.2.1

OpenAPI规范文件:

openapi: "3.0.3"
info:
  title: Example API
  version: "0.1.0"

paths:
  # AUTH
  /auth/login:
    post:
      operationId: authLogin
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AuthLoginRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthLoginResponse"
          description: Session created successfully
      security: []
      summary: Creates a new session
      tags:
        - AUTH - Session management

components:
  schemas:
    AuthLoginRequest:
      type: object
      properties:
        username:
          type: string
        password:
          type: string
      required:
        - username
        - password

    AuthLoginResponse:
      type: object
      properties:
        token:
          type: string

共有1个答案

景鹏云
2023-03-14

您对类路径有验证依赖项吗?如果Spring Boot在您的类路径上看到任何验证机制,它将使用它。否则,它将在没有验证的情况下启动服务器。

如果您使用Maven,则可以使用此依赖项指定Spring验证:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jersey</artifactId>
</dependency>

或者您可以将Hibernate验证与此一起使用。

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.1.2.Final</version>
</dependency>

(此处版本灵活。)

我怀疑这是一份详尽的清单。这些正是我尝试过的。它们都有效。

 类似资料:
  • 我试图生成一个API客户端从v2 swagger文件openapi生成器cli。为此,我使用openapi生成器cli的docker容器,它将其版本报告为4.1.0-SNAPSHOT。 代码生成使用以下选项: 我还尝试将选项设置为true。 但是,生成的服务类不使用装饰器进行注释。因此,在我的组件中导入它们并在组件的构造函数中添加服务后,我无法使用它们。这就是我的组件的样子: 失败,因为userS

  • 我有一个DTO,它在控制器层通过BeanValidation(javax.validation)和定制验证器(org.springframework.validation.Validator)的组合进行验证。通过这种方式,我可以检查提供的输入是否有效,然后转换实体中的DTO并将其转发到服务层。 然后是业务逻辑验证。例如:@Entity用户的startDate必须在某个事件发生之后,如果最后创建的用

  • 我使用的是默认配置,但由于某种原因,我一直收到以下错误: 任务“Generate OpenApidocs”执行失败。无法连接到http://localhost:8080/v3/api-文档等待了30秒 似乎由于某种原因,它没有设置服务器。我该怎么修好它?

  • 我从spring boot oauth2服务器生成JWT令牌,但当我想使用endpoint验证此JWT令牌时,我将post请求发送到此endpoint,并将JWT包含在授权头中,得到401-未经授权的http错误代码。 我从服务器得到的结果是: 为什么oauth服务器返回401? 下面是我对oauth服务器的实现:

  • 我正在维护一个Java应用程序,我们在其中不断添加新特性(api中的更改)。我想使用OpenAPI作为记录api的一种方式。我看到两种思想流派: 编写代码,使用一些注释来生成OpenAPI规范。 虽然两者看起来都很好,但服务器代码只是简单地存档了,然后需要大量的手动插入服务。虽然这似乎罚款作为一个一次性成本,然后下次我更新界面,它似乎对我来说唯一的两个选项是 再次生成它们,重新执行所有手动接线 手

  • 我正在使用openapi生成器maven插件的4.3.1版本在Java11中生成SpringBoot服务器。 对于PUT请求,我希望能够在成功时将URI返回到创建/更新的对象,并且在不成功时返回带有问题信息的纯文本。 我的API的json对于PUT请求有以下内容: 生成的API: 然而,该方法的返回类型是

  • 问题内容: 我有一个角度应用程序,其中包含一个从示例中获取的保存按钮: 这对于客户端验证非常有用,因为当用户解决问题时它会变为false,但是我有一个电子邮件字段,如果另一个用户使用相同的电子邮件注册,则该字段设置为无效。 一旦我将电子邮件字段设置为无效,就无法提交表单,并且用户无法修复该验证错误。所以现在我不能再使用来禁用我的提交按钮。 肯定有更好的办法 问题答案: 我在几个项目中都需要这样做,

  • 问题内容: 我编写了以下bean来验证我的邮件。 问题在于smtp设置,当我在本地服务器上运行应用程序时,它运行正常。但是当我在openshift服务器上运行应用程序时,在 有人可以指出以上设置中的问题,为什么它们在我的本地计算机上工作? 以下是我得到的例外 问题答案: 我有同样的问题。尝试从浏览器登录到Gmail帐户。如果Gmail认为是非法访问(可能来自其他地理位置),则会阻止身份验证请求。您