• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

219
Views
¿Qué se debe devolver cuando una propiedad no tiene un valor en una API REST?

Cuando no hay un valor asignado a una propiedad, ¿debería devolverse como nulo o la API REST debería omitir por completo dichas propiedades?

Considere un ejemplo de objeto de usuario que tiene nombre y apellido. (En el siguiente ejemplo, last_name no necesita ser una cadena vacía específicamente. Tenga en cuenta que nunca se recibió del usuario final).

 { first_name: "Bob", last_name: "", }

Ahora, dado que el cliente conoce el esquema del usuario, ¿debe devolverse last_name o simplemente eliminarse de la respuesta para que el cliente pueda establecer automáticamente un valor predeterminado (es decir, una cadena vacía "" )

En caso de que se deba devolver nulo, ¿tiene sentido devolver nulo cuando tiene un significado especial en algunos casos (es decir, null significa algo y es diferente de undefined )

over 3 years ago · Santiago Trujillo
3 answers
Answer question

0

Mi opinión personal sobre esto sería omitir/omitir el campo, si no hay datos presentes. Si tuviera que enviar cientos de MB en este JSON , contaría mucho.

Además, no olvide que su cliente siempre debe tener en cuenta y VERIFICAR los datos provenientes de la API hasta cierto punto. Comprobar si existe una clave en una matriz de claves es más fácil en numerosos lenguajes de programación que existen.

Teniendo en cuenta que debe validar el tipo de información que proviene de la API (int, cadena, objeto, etc.), guardaría esa parte, si la clave no existe en la respuesta.

Si por casualidad necesita que una clave tenga un valor nulo si no está presente en la respuesta de la API, lo anterior no significa que no pueda agregarla cuando valide la respuesta de la API. Todavía tendría LESS cosas para calcular, lo que lo haría más eficiente.

over 3 years ago · Santiago Trujillo Report

0

undefined no debe usarse intencionalmente si desea expresar un valor faltante. Para eso tenemos null . La definición de... pues nada. Estoy bastante seguro de que es por eso que rfc4627 incluye nulo.

JSON puede representar cuatro tipos primitivos (cadenas, números, booleanos y nulos) y dos tipos estructurados (objetos y matrices).

https://www.rfc-editor.org/rfc/rfc4627

También indica que emitiste null intencionalmente y que el valor no falta debido a un error interno.

Al final, esto depende en gran medida de quién consume esta API. Si conocen las especificaciones, creo que está bien ir con undefined

over 3 years ago · Santiago Trujillo Report

0

Todo depende de cómo defina su esquema para la API. Por ejemplo, si se usa Swagger para definir el esquema API (especificación), le permite especificar los campos obligatorios que deben estar presentes, dejando el resto de los campos opcionales. Por ejemplo, en el siguiente objeto de error, los campos de código y mensaje siempre deben ser devueltos por el servicio, ya que se definen como obligatorios. El cliente que usa este esquema siempre esperaría estos campos y programaría en consecuencia.

 schemas: # Schema for error response body Error: type: object properties: code: type: string message: type: string required: - code - message

Entonces, si el apellido se define como requerido en la especificación de su API, nunca permita que el usuario ingrese un valor en blanco en primer lugar. Pero en el caso de que el usuario NO pueda ingresar ningún valor en el campo apellido, defina su especificación de API. de una manera donde el apellido es opcional. Si el apellido es opcional, complete el campo en la respuesta cuando haya un valor presente; de lo contrario, no devuelva el campo en la respuesta.

over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error