Aggiunta di un'API REST a un progetto C # esistente

1

Sto facendo questa domanda provenire da uno sfondo di nessuna esperienza nello sviluppo web, quindi per favore sii paziente mentre cerco di spiegare cosa sto facendo (se uso le terminologie sbagliate o se è già stato chiesto. cercando, ma non so esattamente come fare concisamente questa domanda).

Ho un server che ho sviluppato che gestisce le richieste da alcuni dispositivi incorporati che la mia azienda costruisce. Attualmente questo server funziona come un file server, ma lo sarà ancora di più in futuro. Diciamo per esempio qui che voglio creare una pagina web che renda i file disponibili accessibili a questi dispositivi e li mostri alla pagina.

Immagino che questo sia un lavoro per un'API REST, ma qui sono un po 'confuso sui dettagli di implementazione. Vedo le cose come tali: [devices] --> server <-- REST API <-- Webpage (le frecce indicano in che modo il flusso delle richieste).

Quindi, qui è dove mi confondo. Devo lasciare il mio server così com'è e creare una classe di connettore per l'API REST, oppure esiste un modo per integrare un'API REST nel mio progetto esistente (o viceversa, implementare il server nel progetto API REST). Il modo in cui ho visto REST integrato in tutte le esercitazioni che ho seguito si collegano tipicamente a un database con le loro classi di modelli, dai controller. Non so come questo si verifichi quando il modello non proviene da un database (e, di conseguenza, nessun Entity Framework). Ho appena immaginato di scrivere una classe di connettori che sappia come interrogare il mio server su un socket per fare una richiesta di dati specifici, che li restituirebbe al modello, quindi al controller e fuori dalla porta come HttpResponse.

Apprezzerei qualche input su questo progetto qui. La mia azienda sta passando da software desktop a SaaS e, in quanto tale, nessuno in azienda sa ancora come fare questa roba e io e un collega stiamo facendo da pioniere (stiamo attualmente lavorando con opzioni per ottenere uno sviluppo professionale in modo da può imparare le migliori pratiche e così via.

    
posta user138741 20.01.2018 - 01:23
fonte

1 risposta

1

Se è possibile integrare facilmente un'API REST sul server corrente, dipende dall'architettura in uso, ma dovresti riuscire a farlo in qualche modo. Tuttavia, spostare il codice progetto esistente nel progetto REST potrebbe essere una soluzione più semplice se non hai esperienza con lo sviluppo web, perché sarai in grado di utilizzare un modello esistente per la web part.

Riguardo a [devices] --> server <-- REST API <-- Webpage , l'API REST qui significa solo un'interfaccia, la pagina Web sta comunicando direttamente con il server in termini di architettura fisica client-server, tuttavia deve utilizzare l'interfaccia REST (percorsi API) che hai definito. REST API in quel grafico non è una parte fisica del sistema, ma solo un'interfaccia.

Infine, REST è solo uno stile di architettura per la definizione dei percorsi API, di come è possibile accedere a un server tramite richieste HTTP. Non è collegato a Entity Framework o addirittura dispone di un database, quelli sono solo utilizzati nelle esercitazioni perché un server REST che comunica con un database è un caso d'uso comune. È possibile scrivere qualsiasi codice nei controller per ottenere i dati per il sito Web, inclusa una chiamata a un altro servizio e in attesa del risultato (che in un certo senso è ciò che si sta facendo quando si utilizza Entity Framework, chiamando un servizio di database ). Come nota a margine qui, ti suggerisco di astrarre il tuo codice esistente da qualche parte e lasciare che i controllori accedano tramite un'interfaccia per mantenere i controllori puliti e brevi, e mantenere una separazione delle preoccupazioni tra i diversi livelli dell'applicazione.

    
risposta data 20.01.2018 - 14:26
fonte

Leggi altre domande sui tag