Layanan penuh muatan. Sabun vs Istirahat

8

Saya memiliki tugas untuk membuat api untuk Magento menggunakan implementasi SOAP atau REST.

Saya sudah membaca banyak tentang kedua layanan, juga memiliki pengalaman dengan mereka. Tapi tidak di high-loaded projects.

Tugas layanan ini akan memberikan beberapa informasi tambahan kepada klien melalui SOAP atau REST. Saya sudah mengkonfigurasi keduanya dan semuanya ok.

TETAPI, pertanyaannya adalah apa yang lebih baik jika saya memiliki 100 klien menelepon layanan saya per detik, 200, 500 dan seterusnya?

Saya tahu tentang overhead SABUN, tetapi juga jika saya menggunakan REST saya perlu menggunakan juga oAuth, jadi apa yang akan jatuh dulu?

Adakah pengalaman dalam hal itu?

sergio
sumber

Jawaban:

11

Anda harus menentukan kasus penggunaan yang jelas untuk mendapatkan jawaban spesifik untuk pertanyaan Anda. Kecuali jika kami memiliki kasus penggunaan terisi di sini, saya ingin menjawab dengan saran umum tentang itu:

SOAP vs REST SOAP dan REST adalah dua cara mengakses layanan web. SOAP menggunakan XML untuk permintaannya. REST bergantung pada permintaan HTTP melalui URL dan karenanya sangat ringan dibandingkan dengan SOAP.

(Dis-) Keuntungan dari SABUN:

  • layanan web yang terdefinisi dengan baik
  • memiliki standar pra-dibangun (SOAPv1, SOAPv2, SOAPv2 WS-I)
  • bekerja dengan baik di lingkungan perusahaan (karena standar)
  • beberapa alat dapat diotomatisasi dengan menggunakan WSDL
  • kelas berat dibandingkan dengan REST

(Dis-) Keuntungan REST:

  • lebih mudah digunakan
  • lebih fleksibel
  • kurva belajar yang lebih kecil
  • efisien / ringan dibandingkan dengan SOAP
  • tidak ada struktur layanan web yang ditentukan (tidak ada WSDL)

API SOAP Magento vs API SISA

Ketahuilah bahwa tidak semua fitur diterapkan untuk REST API.

Saya membuat skrip uji kinerja kecil yang melakukan tidak lebih dari 10x10 permintaan login dan endSession melalui SOAP API v1. Tidak ada tindakan khusus yang dilakukan. 1 permintaan memakan waktu antara 0,9 dan 1,4 detik dengan server web lokal saya.

Untuk membandingkan dengan yang lain: Setelah aplikasi Anda diotorisasi (di mana Anda perlu mengotorisasi aplikasi Anda sekali melalui mengklik "otorisasi"), hanya diperlukan beberapa milidetik untuk siap melakukan permintaan Anda setelah Anda mendapatkan token dan rahasia: 2,0 -3.0 * 10 ^ -5 detik secara lokal.

Pengujian kinerja

Untuk melakukan tes kinerja yang akhirnya bisa menjawab pertanyaan Anda, Anda perlu menentukan persyaratan.

Berikut ini akan menarik:

  • Apakah mereka masuk sekali dan melakukan beberapa tindakan atau apakah masing-masing masuk hanya untuk satu tindakan?
  • Permintaan macam apa yang mereka lakukan? Menambah / memperbarui produk, melakukan pemesanan, ...?
  • SOAP API v1, SOAP API v2 atau SOAP v2 WSI vs REST?

Sumber daya

Ini mungkin juga menarik bagi Anda:

Anna Völkl
sumber
1
Jawaban bagus! Saya juga telah melakukan tes, dan saya punya ~ 0,4 untuk membuat hanya oAuth dan memanggil beberapa metode yang tidak melakukan apa-apa, hanya untuk menguji. Jadi, overhead besar, saya menulis layanan REST dalam kerangka lain, tetapi menggunakan Magento Db untuk memanipulasi data. terima kasih
sergio