# Campos relaciones en API REST v1/v2

**URL:** <https://foros.velneo.com/t/campos-relaciones-en-api-rest-v1-v2/11514>\
**Category:** Velneo\
**Created:** [12 Agosto, 2024 11:13 UTC](https://foros.velneo.com/t/campos-relaciones-en-api-rest-v1-v2/11514 "2024-08-12T11:13:20Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![cloud1](https://avatars.discourse-cdn.com/v4/letter/c/90ced4/32.png) [@cloud1](https://foros.velneo.com/u/cloud1)\
**Post date:** [12 Agosto, 2024 11:13 UTC](https://foros.velneo.com/t/campos-relaciones-en-api-rest-v1-v2/11514/1 "2024-08-12T11:13:20Z")

</div>

Buenos días,  
En nuestra aplicación usamos la API REST de forma bastante extendida, y hemos detectado una necesidad: en tablas con campos relacionados, por ejemplo ART\_M el campo FAM, que es un numero que hace referencia a una ID de la tabla FAM\_M, como podemos modificar el JS de la API para que devuelva en el JSON de forma anidada un objecto con el registro de la tabla FAM\_M, no solo el ID.  
No se si es posible o alguien lo ha desarrollado ya.  
Gracias, un saludo

---

<div class="post-metadata">

**Author:** ![fran\_garcia](https://avatars.discourse-cdn.com/v4/letter/f/df705f/32.png) [@fran\_garcia](https://foros.velneo.com/u/fran_garcia)\
**Post date:** [12 Agosto, 2024 11:42 UTC](https://foros.velneo.com/t/campos-relaciones-en-api-rest-v1-v2/11514/2 "2024-08-12T11:42:56Z")

</div>

Buenas

Es algo con lo que me topé hace bastante tiempo y pues encontré dos formas para obtener los campos relacionados…

La primera fue que pasándole mediante los params de la url, sacáramos los campos de la tabla relacionada, por ejemplo: Yo tengo una tabla de artículos con su familia, pues entonces cuando haga la llamada a art\_m?fields=id,name,fam.name de ese modo obtendrás el campo que necesitas, pero es poco usable en términos de desarrollo web.

La otra solución fue hacerlo por proceso y devolver registros a mi antojo, para eso tendrás que crear un proceso y devolverlo con la estructura que tu quieras, pero claro, te hace pesado el trabajo.

Saludos

---

<div class="post-metadata">

**Author:** ![correo](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/correo/32/5689_2.png) [@correo](https://foros.velneo.com/u/correo)\
**Post date:** [12 Agosto, 2024 12:16 UTC](https://foros.velneo.com/t/campos-relaciones-en-api-rest-v1-v2/11514/3 "2024-08-12T12:16:13Z")

</div>

Hola cloud1.

Modificar el **API\_REST** es relativamente sencillo porque, aunque no estén documentados los scripts JS, se sigue bien el código.

La función **listaToObjeto()** convierte una lista a un objeto **JSON** sin desarrollar las relaciones plurales o los maestros.

Usas la función [VTableInfo.fieldBindType()](https://doc.velneo.com/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo#fieldbindtype) para detectar los campos punteros a maestro y modificas la función **valorCampoJSON()** para que devuelva el objeto **JSON** del registro maestro.

Esta solución está bien, pero tienes que entender que aumentará considerablemente el tamaño del resultado de las consultas API\_REST, sobre todo si el tamaño del registro maestro es grande ya que se repetirá por cada puntero a maestro que haya en la lista.

Otra opción, como dice fran\_garcia, es personalizar la petición mediante consultas \_process.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![cloud1](https://avatars.discourse-cdn.com/v4/letter/c/90ced4/32.png) [@cloud1](https://foros.velneo.com/u/cloud1)\
**Post date:** [12 Agosto, 2024 12:37 UTC](https://foros.velneo.com/t/campos-relaciones-en-api-rest-v1-v2/11514/4 "2024-08-12T12:37:52Z")

</div>

Muchas gracias, finalmente creo que me quedare con esta solucion: “art\_m?fields=id,name,fam.name”, en principio es suficiente. No sabia que existia, creo que no esta documentado

---

<div class="post-metadata">

**Author:** ![fran\_garcia](https://avatars.discourse-cdn.com/v4/letter/f/df705f/32.png) [@fran\_garcia](https://foros.velneo.com/u/fran_garcia)\
**Post date:** [12 Agosto, 2024 21:04 UTC](https://foros.velneo.com/t/campos-relaciones-en-api-rest-v1-v2/11514/5 "2024-08-12T21:04:21Z")

</div>

Es una solución que puedes usar, claro que eso te servirá por ejemplo en un entorno web, para sacar la ficha de un producto con todos sus parámetros, pero… también te digo que ¿Y si quiero por ejemplo un pedido y un array de objetos con todas sus lineas? Pues para cosas como esas no se podría y se tendría que hacer procesos aparte. A mi sinceramente no me gusta mucho como está planteada esta API REST ya que para hacer esas cosas, me termino haciendo un proceso para cada listado y eso luego en mantenibilidad, se nota.
