26 messaggi dal 06 settembre 2002
Dovrei realizzare dei servizi RESTful e vorrei cogliere l'occasione per utilizzare ASP.NET Core 2.1.

Premetto che il modello di sviluppo per le applicazioni web che ho scelto e' Razor Pages (per me che vengo da Web Forms lo trovo piu' comodo).

La domanda che adesso ti faccio sicuramente fara' arricciare il naso a molti.

Per lo sviluppo di servizi RESTful la risposta immediata sara': utilizza le Web API (il capitolo 11 del libro e' interamente dedicato proprio a questo argomento).

Domandone.
Se invece utilizzo un progetto Razor Pages limitato a restituire sempre dati JSON ci sono controindicazioni?

C'e' qualcosa che mi sfugge? Il risultato alla fin fine e' lo stesso?

Se hanno introdotto anche il modello Web API forse un motivo ci sara' o forse no!

Grazie
salvo
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Salvo,
sì, le razor pages possono restituire json e, tipicamente, le sfrutti così quando sei tu stesso sia il creatore che l'utilizzatore finale del contenuto json. Faccio un esempio: stai realizzando la pagina di ricerca di un sito web e vuoi fare in modo che compaiano dei suggerimenti mentre l'utente digita qualcosa nella casella. In questo caso, ad ogni carattere digitato dall'utente, puoi inviare una richiesta ajax al metodo di una razor page e ottenere da essa il json contenente i suggerimenti.
Quindi diciamo che il metodo che restituisce json è comunque funzionale a creare una migliore esperienza di utilizzo per l'utente di un SITO WEB.

Cosa diversa invece è una Web API: i suoi utenti non sono persone ma sono altre applicazioni di terze parti. Si realizza una API quando si vuole consentire a terzi di accedere ai dati dell'applicazione ed eventualmente manipolarli in qualche modo. Si usa spesso quando si vuole integrare l'applicazione con sistemi esistenti, cosa imprescindibile per ogni applicazione moderna.

Ipotizziamo che tu debba realizzare una Web API, in modo che la mia applicazione si possa collegare alla tua per ottenere dei dati. Per poter fare bene e velocemente il mio lavoro, ho bisogno che tu mi esponga una documentazione Swagger/OpenAPI, in modo che io possa capire che richieste HTTP inviare alla tua API.
Se realizzi la API con razor pages, non hai modo di produrre automaticamente questa documentazione e, nel migliore dei casi gli sviluppatori ti inveiranno contro per ore e ore ad infinitum. Nel peggiore dei casi, il tuo prodotto verrà considerato scadente e acquisirai perciò molti meno clienti.

Quindi, in base a qual è il tuo scenario, puoi scegliere se far restituire json a una razor page o a una web api. Nel caso volessi realizzare una Web api, ecco uno script di Marco che ti mostra quanto è facile generarla.
http://www.aspitalia.com/script/1301/Documentare-Web-API-Swagger-ASP.NET-Core-2.1.aspx

Inoltre, usare un ApiController ti dà delle agevolazioni particolari di cui puoi leggere qui:
http://www.aspitalia.com/script/1298/Binding-Automatico-Parametri-ASP.NET-Core-2.1.aspx
http://www.aspitalia.com/script/1297/Validazione-Automatica-Parametri-Web-API-ASP.NET-Core-2.1.aspx
http://www.aspitalia.com/script/1299/Gestire-Upload-File-Controller-Web-API-ASP.NET-Core-2.1.aspx

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.