Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

163
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda