Devo utilizzare entrambe le API Web WCF e ASP.NET

7

Abbiamo già un'API WCF con basichttpbinding. Alcune chiamate hanno oggetti complessi sia nella risposta che nella richiesta.

Abbiamo bisogno di aggiungere abilità RESTful all'API. all'inizio ho provato ad aggiungere un endpoint webHttp, ma ho ottenuto

At most one body parameter can be serialized without wrapper elements

Se l'avessi realizzato Wrapped non era puro come ho bisogno di essere.

Ho letto questo e questo ( che afferma "ASP.NET Web API è il nuovo modo di creare il servizio RESTful su .NET").

Quindi la mia domanda è, dovrei fare 2 API (2 progetti diversi)? uno per SOAP con WCF e uno RESTful con Web API ASP.NET? c'è qualcosa di sbagliato in termini architettonici con questo approccio?

    
posta Mithir 27.08.2012 - 13:15
fonte

3 risposte

6

Mi stavo ponendo la stessa domanda fino a quando ho trovato questa API Web WCF e ASP.NET pagina di confronto su MSDN (con la mia sottolineatura in seguito):

Use WCF to create reliable, secure web services that accessible over a variety of transports. Use ASP.NET Web API to create HTTP-based services that are accessible from a wide variety of clients. Use ASP.NET Web API if you are creating and designing new REST-style services. Although WCF provides some support for writing REST-style services, the support for REST in ASP.NET Web API is more complete and all future REST feature improvements will be made in ASP.NET Web API. If you have an existing WCF service and you want to expose additional REST endpoints, use WCF and the WebHttpBinding.

L'IMO, con due API (due progetti) non è un buon approccio: avrai problemi di manutenzione e potresti confondere o guastare i tuoi utenti / clienti del servizio.

Direi che dipende dai requisiti del tuo progetto e dalle esigenze del cliente. Se SOAP è un must, andare con la risposta di @ Smokefoot, utilizzare WCF ed esporre endpoint SOAP e REST. Se nessun client desidera più utilizzare SOAP e desidera REST, interrompe lo sviluppo sulla versione WCF (servizio Web v1) e passa a API Web ASP.NET (servizio Web v2)

    
risposta data 18.12.2012 - 12:11
fonte
7

Questa non è una risposta diretta alla tua domanda, ma un'alternativa da esplorare.

Oltre alla mia altra risposta, puoi anche controllare un altro framework di servizi Web .NET chiamato ServiceStack . Alcuni punti positivi a riguardo:

Notevoli menzioni che mettono a confronto ServiceStack e l'API Web ASP.NET:

Se vuoi saperne di più su ServiceStack, assicurati di controllare il sito ufficiale , con i codici e la documentazione su GitHub e una presentazione all'indirizzo slideshare .

    
risposta data 27.12.2012 - 16:07
fonte
2

La nuova API Web inclusa nel nuovo ASP.NET MVC è utile per aggiungere servizi restful alle pagine per abilitare alcune funzionalità AJAX. È buono se vuoi solo avere una piccola API o qualcosa del genere ma solo riposare.

Nel momento in cui implementate REST e SOAP come API più grande, preferirei sempre utilizzare un'applicazione WCF. Penso che questo approccio sia meglio da mantenere e tu hai tutti i servizi web situati in un progetto centrale.

    
risposta data 27.08.2012 - 13:25
fonte

Leggi altre domande sui tag