Pertanyaan SOAP Salesforce vs REST


Saya telah membangun aplikasi konsol yang menggunakan API SOAP Saleforce, dan sekarang perlu menggunakan API Salesforce di aplikasi web.

Apakah saya benar menganggap bahwa SOAP lebih cocok untuk aplikasi non-web, dan REST lebih baik untuk aplikasi web?

Jika saya di mana untuk membuat pembungkus yang akan digunakan baik dalam pelaporan dari aplikasi lokal, atau posting ke salesforce dari situs web kami, haruskah saya mengekspos kedua api REST dan SOAP, tergantung pada apa aplikasi itu? Atau haruskah saya tetap menggunakannya? Apa faktor penentu yang harus saya perhatikan jika saya hanya perlu memilih satu?


5
2018-04-11 20:41


asal


Jawaban:


Jawaban lainnya berisi beberapa info umum yang baik, beberapa hal spesifik yang perlu diperhatikan oleh salesforce

1) Anda dapat secara langsung memperbarui data dalam API SOAP, tetapi Anda harus menggunakan API Massal Async untuk melakukannya dari REST.

2) API sabun berisi beberapa hal yang tidak tersedia di REST API, terutama yang menggambarkanLayout, queryAll, getDeleted & getUpdated

3) API REST berisi beberapa hal yang tidak tersedia di API SOAP, termasuk API untuk obrolan, dan akses ke daftar catatan yang baru saja diakses.

4) REST API dapat mengakses data biner (file, lampiran, konten, dll) tanpa overhead enkode / pengodean base64.

Jadi, tergantung pada apa yang coba dilakukan aplikasi Anda mungkin mendorong Anda ke satu atau lain cara.


10
2018-04-11 22:51



Saya percaya itu berakhir menjadi preferensi pribadi jika Anda mengkonsumsinya dengan aplikasi .NET, terlepas dari apakah itu aplikasi web atau bukan.

Secara pribadi, saya akan menggunakan SOAP sebagai. NET memiliki banyak fungsi yang dibangun untuk mengkonsumsi layanan SOAP, itu membangun semua metode prototipe untuk Anda dan akan membuat pengembangan lebih cepat daripada Anda menyusun sendiri permintaan REST sendiri. .NET akan mengurus marshalling SOAP.

Sedangkan untuk membangun pembungkus, Anda harus mempertimbangkan anda target audiens, jika audiens target Anda adalah pengembang aplikasi .NET lainnya, kemudian mengekspos layanan WCF Anda sendiri mungkin merupakan opsi yang layak, WCF juga memiliki titik akhir untuk SOAP atau REST.


3
2018-04-11 20:59



IMHO, jika Anda mengembangkan solusi dari. NET sebagai pertanyaan Anda menunjukkan, SOAP adalah cara untuk pergi. Layanan REST bermanfaat karena mereka tidak memenuhi persyaratan bulk dan tool set yang mengelilingi SOAP dan bagus untuk pengembang bootstrap tanpa akses ke alat investasi berat seperti .NET. Saya setuju dengan komentar lain yang REST lebih dekat mencerminkan metodologi HTTP yang mendasarinya, dan lebih mudah dibaca dan diuraikan secara eksplisit, tetapi itu bukanlah sesuatu yang benar-benar harus Anda perhatikan dari dalam alat seperti VS dan .NET.

Selain itu, karena Anda memiliki aplikasi konsol yang dapat dibawa ke dalam bauran komunikasi di beberapa titik, mungkin baik untuk memiliki fleksibilitas WCF untuk menjadi transportasi agnostik dan tidak terikat dengan HTTP seperti Anda akan dengan REST.

Jadi saya benar-benar tidak berpikir Anda berada dalam posisi untuk mengambil keuntungan dari keuntungan REST atau dipengaruhi oleh kekurangan SOAP, jadi masuk akal untuk menggunakan opsi yang sangat terstandardisasi yang paling sesuai dengan perangkat yang ada.


2
2018-04-11 22:04



Keputusan untuk menggunakan REST atau SOAP ketika keduanya tersedia biasanya terkait dengan:

  1. Alat dan bahasa yang Anda gunakan untuk aplikasi Anda
  2. Keakraban Anda dengan gaya baik
  3. Kebutuhan kinerja aplikasi Anda (payload JSON lebih kecil dari muatan XML)

Jika aplikasi 'lokal' memanggil layanan dari sisi server, maka semua yang lain sama, Anda setidaknya dapat menghasilkan kode C # langsung dari WSDL dan itu membuat penggunaan SOAP API lebih sederhana (tidak ada coding manual).

Jika aplikasi web perlu memanggil API langsung dari sisi klien (browser), kemudian gunakan REST dan bekerja dengan JSON. Ini akan jauh lebih sederhana. Anda tidak akan dapat menggunakan kembali pembungkus yang sama, jadi tidak masalah menggunakan dua API berbeda selain waktu yang diperlukan untuk mempelajarinya.

Jika penggunaan aplikasi web dari API ada di sisi server (bukan klien), maka pasti menargetkan hanya satu API. WSDL jika Anda ingin membuat kode secara otomatis untuk memanggilnya, REST sebaliknya untuk kesederhanaan dan efisiensi.


1
2018-04-11 21:03



IMO, SOAP adalah standar yang dibuat sebagai arsitek pesan jenis kontrak, I.e. Ketika mengirimkan pesan, gunakan saja "kontrak" ini. Itu cukup umum sehingga tidak menggunakan teknologi tertentu.

REST adalah metodologi aktual yang mencakup HTTP, ini adalah cara memanfaatkan GET, POST, PUT, dan DELETE untuk memaksimalkan potensinya.

Saya tidak akan menganggap yang satu lebih baik daripada yang lain, apa yang benar-benar intinya adalah menggunakan alat yang tepat untuk pekerjaan itu. Saya tidak akan membuat perbedaan antara aplikasi berbasis web dan bukan berbasis web. Karena SOAP atau REST dapat bermanfaat bagi keduanya.

Berikut beberapa pertanyaan yang akan saya jawab pertama:
1) Siapa klien target saya. Klien Microsoft Workshop, Java, tipe PHP.
2) Jenis apa (Kurangnya istilah yang lebih baik.) "Endpoint" yang ingin saya tampilkan pada Api saya. (JSON, XML, Ajax, POX, atau semua yang di atas.)
3) Apa yang akan dilakukan klien saya dengan API ini? Apakah mereka sudah memiliki klien yang didasarkan pada SOAP. Jika demikian, SOAP adalah cara untuk pergi.
4) REST akan membuat Anda berpikir tentang desain URL Anda dan dengan demikian memungkinkan klien untuk "mashup" data untuk membangun apa yang mereka butuhkan. Jadi jika Anda berpikir itu adalah sesuatu yang Anda inginkan. ISI adalah cara untuk pergi.
5) REST memanfaatkan "GET" di HTTP, ini memungkinkan klien menyimpan hasil cache. "Bersyarat GET adalah apa yang disebut. Ini memungkinkan mereka untuk cache objek besar, meminta server melalui hanya sebuah header (kecil) jika pembaruan terakhir cocok dengan apa yang di-cache, jika demikian. Jangan repot-repot dengan objek penuh DAPATKAN, apa cache adalah versi terbaru. Hal ini dapat dilakukan dalam SOAP, tetapi di luar kotak, REST lebih baik untuk ini.

Bagaimanapun, semoga itu memberi Anda data yang lebih baik, sehingga Anda dapat membuat keputusan yang lebih baik. Dan jika semuanya gagal, Anda bisa melakukan keduanya. Tapi kemudian Anda harus berurusan dengan mencoba mendapatkan dua jenis layanan (metodologi yang berbeda) dan satu basis kode untuk keduanya. (bisa jadi rumit, tapi tidak sesulit itu.)

Sendiri. Saya akan memilih satu, maka jika Anda membutuhkan yang lain, bakar jembatan itu dan bayar utang teknis untuk itu.


1
2018-04-11 21:05



Terlambat untuk pesta ini, tetapi hanya catatan singkat:

API Salesforce tidak sepenuhnya RESTful: Saya akan menyebutnya REST-ish. Ini memiliki query seperti SQL dalam URL untuk beberapa antarmuka REST-nya, hal semacam itu.


0
2017-08-13 10:38



SOAP API:

Untuk apa itu? Mengintegrasikan data organisasi Anda dengan aplikasi lain menggunakan SOAP.

Kapan menggunakannya? Anda memiliki layanan middleware yang sudah ada sebelumnya yang perlu bekerja dengan WSDL dan data XML.

Protokol SOAP / WSDL Format data XML Komunikasi Sinkron

API REST:

Untuk apa itu? Mengakses objek di organisasi Anda menggunakan REST. Kapan menggunakannya? Anda ingin memanfaatkan arsitektur REST untuk berintegrasi dengan organisasi Anda. Tidak ada persyaratan WSDL. Cocok untuk aplikasi berbasis web, aplikasi seluler, dan aplikasi sosial yang sangat interaktif. REST protokol Format data JSON, XML Komunikasi Sinkron


0
2017-11-17 17:58