Consuma il servizio API REST di ASP.Net

1

Sto creando un'applicazione ASP.Net REST API e bloccata sulla parte in cui dovrei consumare il servizio REST.

Non sono sicuro di come trovare il modo in cui mi consente di realizzare quanto segue:

1. Non voglio che sia Pure REST in un altro significato Non voglio perdere la possibilità di usare Sessions e authentication .

2. Voglio avere un consumo semplice ed efficiente per API senza ridondanza

In modo da aiutarmi a ottenere proxy classes nel client senza forzare il problema nell'avere il modello duplicato nel lato client.

Cosa raggiungo Finora (e correggimi se sbaglio)

1. Posso usare WCF che mi consente il secondo approccio Usare DataContract ma non sembra lo stesso per il primo approccio che richiederà io per creare il Session con il mio.

2. o con Web API 2 per ottenere una leva dall'avere session integrato, C'è un modo per Raggiungermi il secondo approccio Utilizzando OData che mi aiuterebbe a generare classi proxy.

Qualcuno ha avuto lo stesso problema? Puoi fornire vantaggi / svantaggi di ciascun sistema? E qual è il modo migliore semplice ed elegante per andare?

Per essere più precisi

Attualmente, ho una piattaforma .NET che devo esporre a client diversi

(ASP.NET MVC, iOS e Android), svilupperò personalmente questi client non di terzi.

Nel frattempo, questi Clienti hanno il proprio livello aziendale che esegue una logica e persiste i dati utilizzando entity framework ODTC in ORACLE DB ,

cosa sto pensando ora e ciò di cui ho bisogno è avere ASP.NET Web API 2 o WCF Per servire quei clienti migrando il livello aziendale e unificandolo in API

quale dovrei usare?

qual è il miglior approccio efficiente per realizzare gli ultimi due scenari?

Grazie in anticipo

    
posta Iglesk 07.07.2016 - 15:16
fonte

1 risposta

2

WCF usa SOAP, che ha un sacco di spese generali da usare. In questo caso, probabilmente dovresti generare automaticamente client per piattaforme particolari, perché sarebbe troppo lavoro a mano. Esistono molte funzionalità in WCF , ma generalmente caduto in disgrazia a causa del sovraccarico di comunicazione e del codice richiesto rispetto ai modelli più semplici come le normali richieste HTTP.

L'utilizzo di Web API 2 o anche solo MVC (per scenari con origini identiche limitate) per le funzionalità di routing e controller sarebbe la scelta migliore per la facilità d'uso dei client. Qualsiasi client che può fare una richiesta HTTP potrebbe usare la tua API senza un proxy generato. Le API Web ti consentono ancora di inserire elementi come le sessioni . Ci sono numerosi esempi sul web su come fare un HTTP GET / POST / etc. richiesta da qualsiasi piattaforma client, inclusa la riga di comando (tramite arricciatura ).

Per quanto riguarda i client e i server che accettano i contratti, ho una risposta su questo qui . Fondamentalmente, la creazione di classi di dati per le richieste su entrambi i lati è prevista e normale, a seconda dello scenario. I contratti dati possono essere specificati in altri modi senza la condivisione diretta delle librerie. Puoi ancora condividere una libreria tra client / server se non ti dispiace accoppiare strettamente client e server alla stessa piattaforma e tra loro.

    
risposta data 08.07.2016 - 00:32
fonte