Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

164
Views
¿Es mejor enviar una respuesta API normalizada o desnormalizada para las aplicaciones React+Redux?

Estoy escribiendo una aplicación react-redux. Al principio, llama a un punto final único, que devuelve una buena cantidad de datos como un JSON muy anidado. Luego lo normalizo y lo pongo en mi esquema redux-orm.
Me parece una tontería crear los datos anidados en el backend solo para recorrer los datos anidados en el frontend para normalizarlos, considerando que provienen de una base de datos PostgreSQL normalizada.

 Database = Normalized --> API = Denormalized --> Frontend = Normalized

¿Es una buena práctica simplemente enviar una respuesta API normalizada?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

No estoy seguro de que haya una "buena" manera de hacerlo. Si tiene que lidiar con una API existente, hágalo y use proxy/analizadores en su código de interfaz para mapear su carga útil de back-end en su tienda redux-orm, y en el otro lado también.

No pretendo dar aquí una respuesta, sino una retroalimentación, después de casi un año de producción de nuestra aplicación React/Redux/Redux-orm Wisembly Jam .

Cuando comenzamos desde cero, elegimos usar la especificación JsonAPI para nuestra API. Nos gustó eso, ya que expuso objetos y relaciones de una manera que encajaba bien con nuestro esquema PostgreSQL, y también con nuestro esquema redux-orm.

De esa manera, no se necesita anidar la relación del modelo en ambos sentidos, solo los objetos simples se manejan en el campo de data , las relaciones included . Parecía funcionar muy bien juntos.

Puede inspeccionar la pestaña Red de nuestra aplicación para ver nuestras respuestas de carga útil de API, y también nuestra tienda redux-orm (usando la extensión Redux Chrome).

Espero que haya ayudado un poco, a pesar de mi inglés y de no ser una respuesta adecuada :)

over 4 years ago · Santiago Trujillo Report

0

Eso puede ayudar; como dijiste, se recomienda tener datos normalizados en estado: https://redux.js.org/faq/organizing-state#how-do-i-organize-nested-or-duplicate-data-in-my-state

Si aún desea enviar datos anidados desde la API, por ejemplo, para enviar solo lo que se necesita o si es una API existente, puede normalizar en el lado del cliente antes de agregar los datos a la tienda. Por ejemplo, con esta biblioteca: https://redux.js.org/faq/organizing-state#how-do-i-organize-nested-or-duplicate-data-in-my-state

over 4 years ago · Santiago Trujillo Report

0

No entiendo por qué alguien normalizaría en el frente. La única razón por la que hago la normalización es para deshacerme de la repetición. En lugar de enviar los mismos datos anidados, digamos objeto de usuario, varias veces, anido la identificación del usuario y en una propiedad separada llamada "usuarios", enviaría a todos los usuarios necesarios con sus identificaciones como claves para un acceso rápido y fácil de la siguiente manera :

 "users": { "1": { "id": "1", "name": "user_name", ...rest_of_user_details}, ... }

Después de todo, es más fácil para el frente manejar datos no normalizados. Se necesita menos código para enumerar los datos con objetos anidados tal como están en lugar de acceder a esos objetos dentro de otras propiedades usando los identificadores de objeto.

over 4 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 Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!