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.

¿Por qué OpenAPI (esquema JSON) no soporta enteros no signados?

Me doy cuenta de que hay muchas preguntas similares sobre por qué Java u otro lenguaje no admite enteros sin signo, pero esas preguntas son sobre la razón y la filosofía detrás del diseño de un lenguaje, destinado a la creatividad en la expresión de cosas nuevas.

OpenAPI se supone que es descriptivo. Si una API quiere exponer palabras sin signo de 64 bits, debería poder hacerlo. Y OpenAPI debería facilitar a los generadores de código la creación de clientes para consumir esa api.

Bueno, el argumento podría llevarse al infinito para permitir todo tipo de tipos primitivos exóticos. Esto podría ser señalado como “tuvieron que establecer un límite en algún lugar”.

Pero las palabras sin signo de 32 bits y 64 bits son tipos primitivos muy comunes. ¿Por qué no son compatibles?

Bono: ¿qué formatos de especificación de API REST los admiten?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en REST, OpenAPI y JSONSchema, entiendo la importancia de representar con precisión los tipos de datos en las APIs. Desafortunadamente, muchos lenguajes de programación como Java no admiten enteros sin signo, lo que genera preguntas sobre por qué se hizo esta elección de diseño.

    En el caso de OpenAPI, la especificación está diseñada para ser descriptiva y permitir que las APIs expongan cualquier tipo de datos, incluidas palabras sin signo de 64 bits si así se desea. El objetivo de OpenAPI es facilitar a los generadores de código la construcción de clientes que puedan consumir la API, independientemente de los tipos de datos involucrados. Esto significa que si una API necesita usar enteros sin signo, debería poder hacerlo sin problemas.

    Sin embargo, es importante tener en cuenta que el argumento para incluir tipos de primitivas exóticas podría considerarse interminable. Por lo tanto, OpenAPI pudo haber tenido que trazar una línea en algún momento cuando se trata de tipos de datos. No obstante, las palabras sin signo de 32 y 64 bits se usan ampliamente en muchas industrias y se consideran primitivas muy comunes, lo que hace que su ausencia en algunos lenguajes de programación y especificaciones de API REST sea un problema importante.

    En cuanto a qué formatos de especificación de API REST admiten enteros sin signo, depende de la especificación. Si bien OpenAPI no los admite explícitamente, JSON Schema tiene una forma de definir enteros sin signo utilizando la palabra clave “unsigned”. Otras especificaciones pueden tener enfoques diferentes, por lo que es importante consultar la documentación de una especificación específica para determinar si se admiten o no enteros sin signo.

Comments are closed.