Video: SOAP OR REST for Cloud integration 2024
Amazon Web Services (AWS) originariamente lanciato con il supporto SOAP per le interazioni con la sua API, ma ha costantemente deprecato (ha ridotto il suo supporto per, in altre parole) la sua interfaccia SOAP in favore di REST. La migliore raccomandazione per qualsiasi utilizzo dell'API AWS è che ti concentri sull'utilizzo di REST.
In questo modo, non finirai con programmi che un giorno smetteranno di funzionare - anche dopo aver dimenticato i dettagli dei meccanismi di interazione. L'esperienza dello spiacevole compito di dover tornare in un sistema e tentare di ricostruire le tue azioni da mesi o anni prima è una sfortuna.
Non ha senso allettante destino con AWS: se vuoi interagire con l'API AWS, usa REST, che è la direzione a lungo termine di Amazon.
L'approccio più vecchio, SOAP (abbreviazione di Simple Object Access Protocol), aveva un ampio supporto del settore, completo di una serie completa di standard. Quegli standard erano troppo completi, sfortunatamente. Le persone che progettano SOAP lo hanno configurato per essere estremamente flessibile: può comunicare attraverso il web, e-mail e reti private. Per garantire sicurezza e gestibilità, sono stati definiti anche alcuni standard di supporto che si integrano con SOAP.
SOAP si basa su uno standard di codifica del documento noto come Extensible Markup Language (XML, in breve) e il servizio SOAP è definito in modo tale che gli utenti possano sfruttare l'XML non importa qual è la rete di comunicazione sottostante. Affinché questo sistema funzioni, tuttavia, i dati trasferiti da SOAP (comunemente indicato come payload ) devono anche essere in formato XML.
Si noti uno schema qui? La spinta ad essere completa e flessibile (o, per essere tutte le cose a tutte le persone) più il carico utile XML significava che SOAP finiva per essere piuttosto complesso, rendendo così molto lavoro da usare correttamente. Come si può intuire, molte persone IT hanno trovato scoraggiante SOAP e, di conseguenza, hanno resistito a utilizzarlo.
Circa un decennio fa, uno studente di dottorato ha definito un altro approccio ai servizi web come parte della sua tesi: REST, o Representational State Transfer. REST, che è molto meno completo di SOAP, aspira a risolvere meno problemi. Non affronta alcuni aspetti di SOAP che sembravano importanti ma che, a posteriori, lo rendevano più complesso da usare, ad esempio la sicurezza.
L'aspetto più importante di REST è che è progettato per l'integrazione con protocolli web standard in modo che i servizi REST possano essere richiamati con verbi Web e URL standard. Ad esempio, una chiamata REST valida ha il seguente aspetto:
// ricerca.examplecompany. com / CompanyDirectory / EmployeeInfo? empname = BernardGolden
Tutto ciò che serve per fare una query al servizio REST di examplecompany per visualizzare le informazioni sul personale. Il verbo HTTP che accompagna questa richiesta è GET, chiedendo la restituzione delle informazioni. Per eliminare le informazioni, utilizzare il verbo DELETE. Per inserire informazioni, si usa il verbo POST. Per aggiornare le informazioni, si usa il verbo PUT.
Per le azioni POST e PUT, le informazioni aggiuntive accompagnano il empname e vengono separate da una e commerciale (&) per indicare un altro argomento che deve essere utilizzato dal servizio.
REST non impone particolari requisiti di formattazione sui payload del servizio; in questo senso, si differenzia da SOAP, che richiede XML. Per interazioni semplici, una stringa di byte è tutto ciò che serve per il carico utile; per interazioni più complesse (ad esempio, oltre a restituire le informazioni sui dipendenti, si desidera inserire una richiesta per le informazioni sui dipendenti di tutti i dipendenti i cui nomi iniziano con G), viene utilizzata la convenzione di codifica JSON. (JSON, se sei curioso, è l'acronimo di JavaScript Object Notation.)
Come ci si potrebbe aspettare, il modello più semplice di utilizzo di REST, l'allineamento con i protocolli e i protocolli web standard e la sua formattazione meno restrittiva del payload lo hanno fatto prendere dagli sviluppatori come una casa in fiamme.