Artikel ini membahas sepasang API sangat disukai yaitu SOAP vs REST. Kita pasti akan mengakui lebih dalam apa pengertiannya, apa perbedaannya, dan bagaimana? contohnya.
Apa SOAP API ?
SOAP adalah singkatan berasal dari Simple Object Access Protocol. Microsoft membuat SOAP pada tahun 1998 dan merupakan daerah integral berasal dari Service-Oriented Architecture (SOA). Lalu, apa miliknya sendiri easy object entry protocol ? easy object entry protocol adalah proses interaksi net spesifikasi yang mengungkapkan perusahaan net dan mengirim informasi menggunakan proses SMTP atau bahkan HTTP.
SOAP bergantung secara hanya pada Extensible Markup Language (XML) untuk perusahaan distribusi pemberitahuan. SOAP adalah proses profesional, luas bersama komponen pengawasan built-in dan {memiliki} pedoman yang teliti. SOAP secara substansial rumit dan menggunakan sejumlah substansial bandwidth dan informasi daya berbagai lainnya.
Kelebihan SOAP API
Berikut adalah sejumlah kelebihan berasal dari SOAP API yaitu :
- Built-in error dealing with
- Terstandarisasi
- SOAP berfungsi bersama efektif di suasana organisasi terdistribusi
- SOAP adalah sistem, bahasa asing, dan transit impartial
- SOAP memajukan metode otomatisasi bersama sejumlah barang bahasa asing
Kekurangan SOAP API
Berikut adalah sejumlah kelangkaan berasal dari SOAP API yaitu :
- SOAP secara substansial rumit
- SOAP {memiliki} Kegunaan yang sangat jika dibandingkan bersama REST
- SOAP apalagi serbaguna
Contoh SOAP API
Mari kita sudut pandang kasus SOAP API, yang dirender secara mendalam bahasa asing pemrograman komputer yang dengan cara yang berbeda.
#!/usr/bin/perl -w use Data::Dumper; #use SOAP::Lite ( +hint => all, maptype => {} ); use SOAP::Lite; #$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; my $cleaning soap = SOAP::Lite->proxy('https://localhost/AFA/php/ws.php?wsdl'); # Do not confirm the SSL key $soap->transport->ssl_opts( verify_hostname => 0, SSL_verify_mode => 0x00 ); # # Login to AFA Web Service # sub ConnectAFA { my $sUserIdentify = shift; # User title my $sPassword = shift; # Password my $sDomain = shift; # Domain title or empty for non nama domain envirnment $sDomain = (!outlined $sDomain) ? '' : $sDomain; my $technique = SOAP::Data->title('ConnectRequest')->attr({xmlns => 'https://www.algosec.com/afa-ws'}); my @params = ( SOAP::Data->title(UserIdentify => $sUserIdentify), SOAP::Data->title(Password => $sPassword), SOAP::Data->title(Domain => $sDomain) ); my $sSessionID = $soap->name($technique => @params)->consequence; } # # Executing question request # sub ExecQuery { my $sSessionID = shift; my $sQueryTarget = shift; $sQueryTarget = (!outlined $sQueryTarget) ? '' : $sQueryTarget; my $technique = SOAP::Data->title('QueryRequest')->attr({xmlns => 'https://www.algosec.com/afa-ws'}); my $QueryInput = SOAP::Data->title('QueryRequest')->attr({xmlns => 'https://www.algosec.com/afa-ws'}); my @params = ( SOAP::Data->title(SessionID => $sSessionID), SOAP::Data->title(QueryInput => SOAP::Data->worth( SOAP::Data->title(Source => '*'), SOAP::Data->title(Destination => '*'), SOAP::Data->title(Service => '80'), SOAP::Data->title(Service => '443') ) ), SOAP::Data->title(QueryTarget => $sQueryTarget) ); return $soap->name($technique => @params); } # # Disconnect from AFA Web Service (terminate session) # sub DisconnectAFA { my $sSessionID = shift; my $technique = SOAP::Data->title('DisconnectRequest')->attr({xmlns => 'https://www.algosec.com/afa-ws'}); my @params = ( SOAP::Data->title(SessionID => $sSessionID), ); return $soap->name($technique => @params)->valueof('//DisconnectResponse'); } my $sSessionID = ConnectAFA('admin', 'algosec', ''); print "n"; print "Session ID: '" . $sSessionID ."'"; print "n"; my $QuestionResult = ExecQuery($sSessionID, 'afa-276'); foreach my $Result ($QuestionResult->valueof('//QuestionResult/')) { print Dumper($Result); } print "n"; my $Disconnect = DisconnectAFA($sSessionID); print "Disconnect: "; print $Disconnect; print "n";
#!/usr/bin/python from SOAPpy import SOAPProxy def ConnectAFA(params): # username/password username = params['UserName'] password = params['Password'] nama domain = params['Domain'] proxy = 'https://'+sHost+'/AFA/php/ws.php?wsdl' namespace = 'https://www.algosec.com/afa-ws' server = SOAPProxy(proxy, namespace) if (DebugMode): # uncomment these for debugging output server.config.dumpHeadersIn = 1 server.config.dumpHeadersOut = 1 server.config.dumpSOAPOut = 1 server.config.dumpSOAPIn = 1 response = server.ConnectRequest(UserIdentify=username, Password=password, Domain=nama domain) return response def SendQueryRequest(params): # username/password SessionID = params['SessionID'] QueryInput = params['QueryInput'] proxy = 'https://'+sHost+'/AFA/php/ws.php?wsdl' namespace="https://www.algosec.com/afa-ws" server = SOAPProxy(proxy, namespace) if (DebugMode): # uncomment these for debugging output server.config.dumpHeadersIn = 1 server.config.dumpHeadersOut = 1 server.config.dumpSOAPOut = 1 server.config.dumpSOAPIn = 1 response = server.QueryRequest(SessionID=SessionID, QueryInput=QueryInput) return response def DisconnectAFA(params): # username/password SessionID = params['SessionID'] proxy = 'https://'+sHost+'/AFA/php/ws.php?wsdl' namespace="https://www.algosec.com/afa-ws" server = SOAPProxy(proxy, namespace) if (DebugMode): # uncomment these for debugging output server.config.dumpHeadersIn = 1 server.config.dumpHeadersOut = 1 server.config.dumpSOAPOut = 1 server.config.dumpSOAPIn = 1 response = server.DisconnectRequest(SessionID=SessionID) return response sHost="192.168.3.82" #DebugMode = True DebugMode = False print "n" + "Submitting join request:" + "n" values = {'UserIdentify': 'admin', 'Password': 'algosec', 'Domain': ''} afa_connect = ConnectAFA(values) SessionID = afa_connect print "Returned Session ID: "+repr(SessionID) print "n" + "Submitting question request:" + "n" QueryParams = {'SessionID': SessionID,'QueryInput': {'Source': '192.168.1.100', 'Destination': '10.228.16.10', 'Service': 'tcp/22'}} QuestionResult = SendQueryRequest(QueryParams) print QuestionResult print "n" + "Submitting disconnect request:" + "n" DisconnectParams = {'SessionID': SessionID} DisconnectResult = DisconnectAFA(DisconnectParams) print DisconnectResult
Apa miliknya sendiri REST API ?
REST adalah singkatan berasal dari Representational State Transfer. REST adalah Tipe desain yang memungkinkan sistem untuk sesuai satu setiap bit sebagai lagi, dirancang dominan untuk berfungsi bersama bagian seperti file, bagian media, dan sesuatu pada satuan berisik tertentu. REST dirancang untuk mengalahkan kelangkaan SOAP dan menawarkan teknik yang lebih nyaman untuk mengakses perusahaan net.
Layanan net yang dibuat menggunakan Tipe desain REST diakui sebagai perusahaan net RESTful. REST secara substansial sangat disukai di kalangan desainer yang merancang API komunitas.
Saat membandingkan SOAP vs REST, untuk alasan ini REST lebih berbasis kepada informasi, dan mengandalkan pada proses interaksi tanpa kondisi, rata-rata dugaan bersama HTTP. Meskipun REST dapat menyusun informasi menggunakan YAML, XML, atau bahkan gaya lagi yang dapat dibaca perangkat, REST tambahan dapat menggunakan JSON untuk Menyusun informasi.
Kelebihan REST API
Berikut adalah sejumlah kelebihan berasal dari REST API yaitu :
- REST nyaman dipelajari
- REST secara substansial efektif dan segera
- Filosofi desainnya lebih sejalan bersama inovasi net berbagai lainnya
- Menggunakan spesifikasi yang nyaman dipahami seperti OpenAPI Specification 3.0 dan Swagger
Kekurangan REST API
Berikut adalah sejumlah kelangkaan berasal dari REST API yaitu :
- REST tidak seaman SOAP
- REST tidak ideal untuk suasana terdistribusi
Contoh REST API
Mari kita sudut pandang kasus berasal dari REST API
- Permintaan REST API awalnya yang perlu dibuat melalui programmer adalah login.
POST /{api}/2.2/auth/signin HTTP/1.1 HOST: my-server Content-Type:textual content/xml <tsRequest> <credentials title="pengawas" password="passw0rd"> <website contentUrl="" /> </credentials> </tsRequest>
- Berikut teknik membuat meminta untuk mendapatkan ikut konsumen.
GET /{api}/2.2/websites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/customers/customers HTTP/1.1 GET /{api}/2.2/websites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/customers/customers HTTP/1.1 HOST: my-server X-Tableau-Auth: 12ab34cd56ef78ab90cd12ef34ab56cd
- Dan pasti, berikut adalah meminta untuk memperbarui konsumen yang ada.
PUT /{api}/2.2/websites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/customers/9f9e9d9c-8b8a-8f8e-7d7c-7b7a6f6d6e6d HTTP/1.1 HOST: my-server X-Tableau-Auth: 12ab34cd56ef78ab90cd12ef34ab56cd Content-Type: textual content/xml <tsRequest> <consumer fullName="NewUser2" siteRole="ViewerWithPublish" /> </tsRequest>
SOAP vs. REST
Berikut adalah sejumlah variasi diantara SOAP API dan REST API
SOAP | REST |
Adalah proses | Adalah Tipe desain |
Tidak dapat menggunakan REST karena REST adalah Tipe desain | Dapat menggunakan perusahaan net SOAP karena ini adalah proses seperti HTTP |
Menggunakan Java API “JAX-WS” untuk perusahaan webnya | Menggunakan Java API “JAX-RS” untuk perusahaan webnya |
Menentukan spesifikasi yang perlu diikuti secara teliti | Tidak begitu beberapa spesifikasi, sebagai saran dan {memiliki} standar yang tidak teliti |
Mendefinisikan keamanannya dengan dirinya sendiri | Bergantung pada langkah-langkah pengawasan berasal dari transit yang mendasarinya |
Menggunakan bandwidth yang kendali jarak jauh lebih beberapa daripada REST | Membutuhkan bandwidth yang kendali jarak jauh jauh lebih sedikit daripada SOAP |
Hanya memperbolehkan gaya informasi XML | Memungkinkan gaya informasi seperti Teks rata-rata, HTML, JSON, XML, dan lain-lain. |
Menggunakan antarmuka perusahaan untuk mengungkapkan pemikiran perusahaan | Menggunakan URI untuk mengungkapkan pemikiran perusahaan |
SOAP digerakkan melalui Kegunaan. | REST berbasis informasi. |
Meskipun REST telah akhirnya menjadi lebih sangat disukai daripada SOAP, setelah mengatakan itu SOAP secara substansial ideal untuk perusahaan net jumlah organisasi yang menggunakan membeli rumit dan permintaan pengawasan ketinggian. API SOAP secara substansial cocok untuk gateway penyelesaian, pemantauan identifikasi, aplikasi perangkat lunak CRM, dan perusahaan uang.
Anda ringan menonton: SOAP Vs REST : Pengertian, Perbedaan, dan Contohnya
Sumber: https://taylorswift10years.com
Kategori: Teknologi