2016-08-13 1 views
0

est-il capable de mettre en œuvre fonction de la procédure sur la mise en réponse structurée à partir de deux tablesComment obtenir JSON structuré à partir de deux tables en utilisant demande REST

J'ai deux tables: « Société » et « Téléphone »

Société contient des sociétés et téléphone contient des numéros de téléphone sur chaque entreprise. Une entreprise -> de nombreux téléphones liés par COMPANYID

Je dois exactement cette structure:

{ 
    "resource": [ 
    { 
     "companyId": 1, 
     "companyName": "Apple", 
     "companySubject": "Security", 
     "phones": [ 
     { 
      "name": "tel1", 
      "phone": "+178548555" 
     } 
     ] 
    }, 
    { 
     "companyId": 2, 
     "companyName": "Samsung", 
     "companySubject": "IT", 
     "phones": [ 
     { 
      "name": "tel1", 
      "phone": "+178548555" 
     }, 
     { 
      "name": "tel2", 
      "phone": "+178548555" 
     }, 
     { 
      "name": "tel3", 
      "phone": "+178548555" 
     } 
     ] 
    }, 
    { 
     "companyId": 3, 
     "companyName": "LG", 
     "companySubject": "Accounting", 
     "phones": [ 
     { 
      "name": "tel1", 
      "phone": "+178548555" 
     }, 
     { 
      "name": "tel2", 
      "phone": "+178548555" 
     } 
     ] 
    } 
    ] 
} 

Le problème est qu'ils sont dans des tableaux distincts et je ne peux pas comprendre comment le mettre en œuvre.

-je utiliser dreamfactory pour backend

Répondre

1

Si les tables ont une relation de clé étrangère (définie dans la base de données), vous pouvez simplement récupérer les téléphones en appelant GET {service_name}/_table/{table_name}?related={relationship_name} Dans votre exemple ci-dessus cela pourrait être quelque chose comme GET my_service/_table/Company?related=phones_by_companyId Vous pouvez obtenir le nom de la relation en consultant les informations de structure de table dans l'onglet DreamFactory Schema, et vous pouvez même créer un alias pour cette relation afin que le nom de la relation soit simplement phones. Si les tables ne sont pas liées, vous pouvez utiliser les clés étrangères virtuelles de DreamFactory pour les relier. Plus d'infos sur VFK peut être trouvé on the wiki