es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo configuro additionalProperties: false usando nestjs/swagger?

El Schema fue implementado usando @ApiBody({type:CreateUserInput}).
Necesito ser capaz de evitar que acepte propiedades adicionales según la especificación OPENAAPI estableciendo additionalPropeerties:false, pero no sé cómo implementarlo.

"schemas": {
      "CreateUserInput": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "para el nombre",
            "pattern": "^[A-Za-z0-9]{3,10}$",
            "maxLength": 50,
            "minLength": 10
          },
          "lastName": {
            "type": "string",
            "description": "para el apellido",
            "pattern": "^[A-Za-z0-9]{3,10}$",
            "maxLength": 50,
            "minLength": 10
          },
          "email": {
            "type": "string",
            "description": "para el correo electrónico",
            "pattern": "^[A-Za-z0-9]{3,10}$",
            "maxLength": 50,
            "minLength": 10
          },
          "password": {
            "type": "string",
            "minLength": 10,
            "maxLength": 50,
            "description": "para la contraseña",
            "pattern": "^[A-Za-z0-9]{3,10}$"
          }
        },
        "required": ["firstName", "lastName", "email", "password"]
      },
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para evitar que se acepten propiedades adicionales en el esquema CreateUserInput, puedes agregar la propiedad “additionalProperties” al esquema y establecerla en “false”. Aquí tienes un ejemplo de cómo puedes modificar el esquema para implementar esto:

    "schemas": {
      "CreateUserInput": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "para el nombre",
            "pattern": "^[A-Za-z0-9]{3,10}$",
            "maxLength": 50,
            "minLength": 10
          },
          "lastName": {
            "type": "string",
            "description": "para el apellido",
            "pattern": "^[A-Za-z0-9]{3,10}$",
            "maxLength": 50,
            "minLength": 10
          },
          "email": {
            "type": "string",
            "description": "para el correo electrónico",
            "pattern": "^[A-Za-z0-9]{3,10}$",
            "maxLength": 50,
            "minLength": 10
          },
          "password": {
            "type": "string",
            "minLength": 10,
            "maxLength": 50,
            "description": "para la contraseña",
            "pattern": "^[A-Za-z0-9]{3,10}$"
          }
        },
        "required": ["firstName", "lastName", "email", "password"],
        "additionalProperties": false
      },
    }
    

    Al establecer “additionalProperties” en falso, se rechazarán cualquier propiedad adicional que no esté definida en el esquema.

Comments are closed.