Loading
Ampliar Salesforce con clics, no con programación
Valores predeterminados y valores predeterminados

Valores predeterminados y valores predeterminados

Obtenga información acerca de la compatibilidad de Servicios externos para valores predeterminados. Para OpenAPI 2.0, se utilizan valores predeterminados establecidos en properties. Para esquemas de OpenAPI 3.0, se utiliza el valor predeterminado "más externo". Las configuraciones no compatibles se ignoran.

Ediciones necesarias

Disponible en: Lightning Experience
Disponible en: Enterprise Edition, Performance Edition, Unlimited Edition y Developer Edition

Valores predeterminados

Para especificaciones de OpenAPI 2.0 y 3.0,

  • El tipo del valor predeterminado debe coincidir con el tipo de la propiedad/parámetro. Por ejemplo, si el tipo es integer y el valor predeterminado proporcionado es 50.2, el valor predeterminado no se traduce a Apex.
  • Para que aparezcan los valores predeterminados de integer, se debe especificar un formato, por ejemplo, int32 o int64.

Las siguientes secciones describen la compatibilidad específica de versión de API abierta para valores predeterminados.

Definiciones predeterminadas de OpenAPI 2.0

Para esquemas de OpenAPI 2.0, Servicios externos admite un subconjunto de tipos de datos primitivos para valores predeterminados establecidos en propiedades de objeto. Estos tipos de datos primitivos están limitados a:

  • string
  • número
  • entero
  • booleano

Para esquemas de OpenAPI 2.0, solo se utilizan los valores predeterminados establecidos en properties.

Por ejemplo, en el miniprograma de código a continuación, se admite el conjunto predeterminado para la propiedad month. En la clase Apex, ve un comentario en el objeto birthday con

// Default value: January

Sin embargo, el valor predeterminado establecido en el nivel de objeto

"default": { "month": "December" }

se ignora.

"birthday": { 
    "type": "object", 
    "properties": { 
        "month": { 
            "type": "string", 
            "default": "January" 
        }, 
        "day": { 
            "type": "integer" 
        }, 
        "year": { 
            "type": "integer" 
        } 
    }, 
    "default": { 
        "month": "December" 
    } 
}

Los valores predeterminados establecidos en cualquier otro lugar que no sea en la propiedad (como object/composed object) se ignoran.

En el siguiente ejemplo, el valor predeterminado es 123 porque es lo que se establece en la propiedad.

"Fax": { 
    "allOf": [
        { 
            "$ref": "#/components/schemas/Contact" 
        }, 
        { 
            "type": "object", 
            "properties": { 
                "faxNumber": { 
                    "type": "integer", 
                    "default": 123 
                } 
            } 
        }, 
        { 
            "default": { 
                "faxNumber": 456 
            } 
        } 
    ], 
    "default": { 
        "faxNumber": 789 
    } 
}

Definiciones predeterminadas de OpenAPI 3.0

Para esquemas de OpenAPI 3.0, se utiliza default predeterminado "más externo". Para el mismo objeto de cumpleaños registrado utilizando un esquema de OAS3,

"birthday": { 
    "type": "object", 
    "properties": { 
        "month": { 
            "type": "string", 
            "default": "January" 
        }, 
        "day": { 
            "type": "integer" 
        }, 
        "year": { 
            "type": "integer" 
        } 
    }, 
    "default": { 
        "month": "December" 
    } 
}

el comentario en la clase Apex es

// Default value: December

porque default establecido en el nivel de objeto es el más externo y, por lo tanto, es el que se utiliza.

No se admiten los valores predeterminados establecidos en el nivel de objeto compuesto para composiciones de objetos anyOf y oneOf. En el siguiente ejemplo,

"default": { "phoneNumber": "1 (000) 000 0000"

no se usa.

"Phone": { 
    "oneOf": [
        { 
            "$ref": "#/components/schemas/Contact" 
        }, 
        { 
            "type": "object", 
            "properties": { 
                "phoneNumber": { 
                    "type": "string" 
                } 
            } 
        } 
    ], 
    "default": { 
        "phoneNumber": "1 (000) 000 0000" 
    } 
}

Sin embargo, se admiten los valores predeterminados establecidos en el nivel de objeto compuesto para allOf. De nuevo, en este escenario, los valores predeterminados "más externos" sustituyen a los otros. En el siguiente ejemplo de objeto de fax, si el único conjunto predeterminado era 123, eso es lo que se muestra en la clase Apex. Pero si ambos 123 y 456 estuvieran establecidos, 456 sustituiría 123 y 456 se mostrarían en la clase de Apex, y del mismo modo si 123, 456, 789 estuvieran todos establecidos, 789 se mostrarían en la clase de Apex.

"Fax": { 
    "allOf": [
        { 
            "$ref": "#/components/schemas/Contact" 
        }, 
        { 
            "type": "object", 
            "properties": { 
                "faxNumber": { 
                    "type": "integer", 
                    "default": 123 
                } 
            } 
        }, 
        { 
            "default": { 
                "faxNumber": 456 
            } 
        } 
    ], 
    "default": { 
        "faxNumber": 789 
    } 
}
 
Cargando
Salesforce Help | Article