Passagio dati complessi tra una ASP.NET webapi e Angular

PazzoFrontEnd

Utente Attivo
8 Ott 2013
46
0
6
Buongiorno,
chiedo scusa anticipatamente se ho sbagliato sezione, ma non sapevo se postarla qui o in javascript.
Sto creando una web app dove la parte server è in asp.net core e la parte client in angular 7-8. Spiego l'applicazione brevemente: essa si occupa di interfacciarsi con il DB per vari motivi e nello specifico il mio problema sorge quando sulla pagina web inserisco in un campo di testo una query (esempio SELECT top 100 * from pippo) e cliccando su un bottone un servizio Angular si occupa di chiamare una webapi che mi deve restituire una IEnumerable<Dictionary<string, object> passandogli un oggetto complesso:

Codice:
       [HttpPost]
       //[Authorize]
       public async Task<IEnumerable<Dictionary<string, object>>> ExecuteQuery([FromBody]  queryParameter parameter)
       {
           DataTable dt = await new DAL(_cfg).ExecuteQuery(parameter.BusinessItem, parameter.Query);

           List<Dictionary<string, object>> result = new List<Dictionary<string, object>>();

           Dictionary<string, object> item = null;

           foreach (DataRow dr in dt.Rows)
           {
               foreach (DataColumn dc in dt.Columns)
               {
                   item.Add(dc.ColumnName, dr[dc]);
               }

               result.Add(item);
           }

           return result;
       }

La result del metodo mi deve restituire una List<Dictionary<NomeColonna, RigaDatabase>> in base query passata nell'oggetto complesso come parametro (insieme ad altre cose). Il tutto mi serve per popolare una tabella html sulla mia pagina web.

Il problema sorge in Angular. Come faccio a restituire un Observable che mi mappi il Dictionary della mia webapi?

Codice:
 executeQuery(parameter: QueryParameter): Observable<????> {
       return this.http.post<????>('api/main/ExecuteQuery', parameter);
 }

Chiaramente sarà poi compito del mio componente fare una subscribe e popolare una variabile oggetto per popolare la tabella. Qualcuno può aiutarmi? Ho seri problemi a capire come chiudere il cerchio. Grazie mille e buona giornata
 

Rikk73

Utente Attivo
7 Apr 2015
137
6
18
Arezzo
Credo che la soluzione più veloce in questo caso (ma non la più "bella") sarebbe quella di utilizzare il tipo any per l'Observable, questo ti permette poi nel componente/html di utilizzare i nomi di proprietà in-line scrivendo praticamente quelli che vuoi.

La soluzione bella sarebbe quella di fare un viewmodel (sia lato API che lato Angular) e far restituire quello dalle API, quindi poi avrai un Observable<TuoViewModel[]>
 
Discussioni simili
Autore Titolo Forum Risposte Data
S ComboBox, radioButton, CheckBox...passagio dati FLASH-PHP!!! Flash 0
C scritta fastidiosa al passagio del mouse su un link HTML e CSS 8
L Problema con passagio variabile Flash 1
P tabella cambia sfondo al passagio del mouse HTML e CSS 1
S problema con recupero dati tabella mysql PHP 2
E Progressbar estrazione dati da tabella mySQL Ajax 9
A invio massivo dati a file php Javascript 4
M Inviare dati nel db dopo risposta alert PHP 0
A recuperare i dati passati nel post PHP 1
L Estrazione dati php Database 6
L Estrazione dati casuali non doppioni MySQL 1
J Form inserimento dati in database Ajax 1
D Recupero dati da HDD esterno Hardware 0
L non duplicare dati in stato "aggiornamento" PHP 6
L inserire dati multi livello PHP 8
L input (rilevare cambio dati) PHP 3
L input dati con inser into select ? PHP 4
W Invio Dati ad un altra pagina Classic ASP 1
A Mostrare dati database per pagine PHP 2
Samuele Ronzani Sposta dati in una tabella eliminandolo MySQL 6
S Gestire scelta dropdown con dati da Mysql PHP 2
C Estrarre dati stringa Sql Database 1
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
W Evitare ridondanza dei dati Classic ASP 3
MarcoGrazia Dati nulli su join tra più tabelle MySQL 1
A Inserimento dati nel database tramite form + altre operazioni PHP 18
Alex_70 sql importazione dati MySQL 0
C Aggiungere blocco dati Javascript 6
G inserire dati automaticamente in mysql PHP 0
Tommy03 Unire dati da due tabelle MySQL 5
S Trasferire dati sulle pagine del sito PHP 7
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
L inviare i dati di un form ad un database PHP 6
Alex_70 Inserimento dati a cascata PHP 204
T Da xsd a xml ed inserimento dati in excel XML 0
G Rendere dati di una tabella mysql link PHP 22
D Chiave unica in estrazione dati da array php PHP 0
L modifica dati. PHP 1
C Problema con dati meteo xml XML 1
L risolto visualizzazione e ordinamento dati PHP 1
D Javascript per il download dei dati Javascript 0
L Recupero dati da SSD Windows 10 prof Windows e Software 2
max1974 raggruppare e girare i dati in colonne MySQL 11
D Difficile creazione excel di dati di grandi dimensioni Classic ASP 2
WebmasterFioriniAndrea SQL, PHP Come passo i dati da una tabella? PHP 1
elpirata [MySQL] Sincronizzare dati tra due tabelle sullo stesso host MySQL 0
M Estrarre dati da una select HTML PHP 3
L [Javascript] Problema salvataggio dati in db Javascript 1
max1974 [Javascript] Grafico chartjs con dati da J.ajax Javascript 3
S [PHP] email con inserimento dati nel database PHP 23

Discussioni simili