Magento 2 “Web API Entegrasyonu” nedir


9

Başına geliştirici belgelerinde

Entegrasyon tarzı web API'leri, daha verimli bir entegrasyon için tek bir web API çağrısının aynı anda birden fazla hizmeti çalıştırmasını sağlar. Bu davranışa bir örnek, bir web API çağrısının bir ürün oluşturabildiği Katalog'da görülebilir; yükünüz envanter nesnesini ve medya nesnesini içeriyorsa, çerçeve bu API çağrısında ürünün envanterini ve medyasını da oluşturur.

...

Magento Admin'de yeni bir entegrasyon oluşturun. Bir entegrasyon oluşturmak için Sistem> Entegrasyon> Yeni Entegrasyon Ekle'yi tıklayın. Entegrasyonun hangi kaynaklara erişebileceğini sınırladığınızdan emin olun.

Bir entegrasyonun tam olarak ne olduğu açık değildir. İlk belge snippet'i, bir entegrasyonun tek bir HTTP isteğinde birden fazla API çağrısını zincirlemenin (belki?) Bir yolu olduğunu gösterir. Ancak bunun bir sözdizimi örneği yoktur. Ayrıca, ikinci belge snippet'indeki bilgileri kullanırsam bir tümleştirme nesnesi oluşturabilirim, ancak bununla ne yapmam gerektiği net değil. Ayrıca, kodun içine girildiğinde, entegrasyon nesneleri farklı bir kimlik doğrulama kodu yolu kullanıyor gibi görünür.

Herkes bu "API Entegrasyonları" ne ve nasıl çalışır hakkında net bir fikri var mı?

Yanıtlar:


7

Magento 2'de 4 tür kullanıcı vardır (bkz. \ Magento \ Authorization \ Model \ UserContextInterface ), bunlardan herhangi biri web API'leri aracılığıyla istekte bulunurken kullanılabilir:

  • Anonim kullanıcılar (misafir). İstek yapmak için hiçbir belirteç veya çerez kullanılmadıysa kullanıcı anonim kabul edilir
  • Müşteriler. Müşteri belirteci veya çerez isteği ile birlikte iletilmelidir
  • Yöneticiler. Yönetici belirteci veya çerez mevcut olmalıdır
  • Entegrasyonları. Entegrasyon erişim belirteci OAuth 2.0 stilinde iletilmeli VEYA istek, OAuth 1.0a stilinde tüketici anahtarı, tüketici sırrı, erişim belirteci, erişim belirteci sırrı kullanılarak düzgün bir şekilde imzalanmalıdır.

Entegrasyon adresinde oluşturulabilir, System > Integration > Add New Integrationherhangi bir Yönetici kullanıcıyla aynı izinler verilebilir (EKL ağacı aynıdır). Web API istekleri hem yönetici hem de entegrasyon adına yapılabilir. Yönetici kullanıcıdan entegrasyondan farklı olan, 3. tarafın OAuth anlaşmasını kullanarak web API kimlik bilgilerini alabilmesidir .

OAuth el sıkışma, çok kullanıcılı 3. taraf sistemle otomatik olarak entegre edilmesini sağlar (3. taraf tarafından desteklendiğinde):

  • Entegrasyon oluşturma sırasında isteğe bağlı alanları doldurun Callback URLve Identity Link URL(her ikisi de 3. taraf sistem tarafından sağlanmalıdır)
  • Entegrasyonu etkinleştirmeye çalıştığınızda OAuth anlaşması tetiklenir
  • Bazı veriler Magento tarafından sunucudan sunucuya POST isteği kullanılarak Geri Arama URL'sine gönderilecektir. Kimlik Bağlantı URL'si (3. taraf sistemdeki giriş sayfası) açılır pencerede açılır ve bazı GET parametreleri gönderilir
  • Kimlik doğrulaması başarıyla tamamlandıktan sonra, 3. taraf Magento'dan İstek Jetonu isteyecek ve ardından Erişim belirteci ile değiştirecektir. Ayrıca mevcut Magento örneğini kendi kayıtlarındaki kullanıcı hesabıyla ilişkilendirecektir. Birden fazla Magento satıcısının aynı 3. taraf CRM'de hesapları olabilir ve her satıcının hesabı Magento örneğine bağlanır
  • Verilen erişim belirteci Magento web API'sine istekte bulunmak için kullanılabilir. Bu simge Magento Entegrasyon kaydı ile ilişkilendirilecek ve APIEntegrasyon düzenleme sayfası sekmesinde seçilen kaynaklara erişebilecek

Birden çok hizmeti aynı anda çağırmayla ilgili kısa not, bu özellik daha çok toplama API'leri olarak bilinir ve Entegrasyon kullanıcı türüyle ortak bir yanı yoktur.


Yanlışsam düzelt. Ancak Magento 2 kimlik doğrulamasında tüketici anahtarı yoktur. Dokümanlar, M2'nin iki aşamalı bir kimlik doğrulama işlemi uyguladığını açıkça belirtiyor. İstek ve Erişim. Burada belirtildiği gibi devdocs.magento.com/guides/v2.2/get-started/authentication/…
vitoriodachef

2

Buradaki entegrasyon, entegratörlerin ve geliştiricilerin Magento API'sı aracılığıyla Magento sistemiyle iletişim kuran web hizmetlerini kullanmanın yoludur. Magento'nun yöneticinin Yeni Entegrasyon Formu'nda yapılandırmasına izin verdiği bir veya daha fazla hizmeti çağırabilir (Belirli bir API'yi seçmek veya tümünü seçmek için bu ekranda aşağı kaydırın)

Güvenlik sorunu nedeniyle, Magento yalnızca üç tür kimlik doğrulamasından biri aracılığıyla harici yetkili isteklere izin verir: - Jeton tabanlı kimlik doğrulama - OAuth tabanlı kimlik doğrulama - Oturum tabanlı kimlik doğrulama

Her tür kimlik doğrulamasında, tümleştirici ve geliştiricinin Magento'ya bir kullanıcı hesabı kaydı olması gerekir. Kullanıcı hesabıyla, Magento'ya talebinizle birlikte göndermeniz gereken jeton Kimliği alabilirsiniz.

Örneğin, kullanıcı hesabınız ve entegrasyon bilgileriniz zaten var. Şimdi Magento'dan jeton almayı isteyeceksin. Snippet'i ilk kimlik doğrulama türünü (Jeton tabanlı kimlik doğrulama) kullanarak gösteririm:

curl -X POST "https://localhost/magento/index.php/rest/V1/integration/admin/token" \
     -H "Content-Type:application/json" \
     -d '{"username":"user_example", "password":"123123q"}'

Başarılı olursa, "asdf3hjklp5iuytre"

Artık API'sini çağırarak veri istemek için Magento ile entegrasyon sağlayabilirsiniz

curl -X GET "http://localhost/magento/index.php/rest/V1/customers/2" \
     -H "Authorization: Bearer asdf3hjklp5iuytre"

Son olarak, Magento'dan bir müşteri listesi alabilirsiniz. Örneğin curl komutunu kullanıyorum, bütünleştirici ve geliştirici bir hizmet url'si için bir web hizmeti isteği oluşturmak için PHP, C # veya başka bir dil tarafından uygulayabilirsiniz.

PS: SoapUI test için servis talebi yapmak için yararlı bir araçtır.

Bu yardımcı olur umarım.


Sistem> Entegrasyon> Yeni Entegrasyon Ekle'deki "entegrasyonlar" nesnelerini içermiyor gibi görünüyor. Bir şey mi kaçırıyorum?
Alan Storm

Maalesef, entegratör ve geliştiricinin Magento ile entegre olma şekline odaklanıyorum. Integration nesnesi ile admin, Magento kullanıcı rolüne bağlı olmak yerine hangi API'nın erişmesine izin verileceğini özelleştirebilir. Üçüncü taraf, OAuth tabanlı kimlik doğrulamasını, Integen nesnesindeki tüketici belirteci ve gizli belirteci ile Magento Web API'lerine erişmenin yollarından biri olarak kullanmalıdır. Bkz. Devdocs.magento.com/guides/v2.0/get-started/authentication/…
Tuan Nguyen

İlk curl komutundan sonra ikinci curl komutunu kullandığımda "{" message ":"% fieldName =% fieldValue "," parameters "ile böyle bir varlık yok: {" fieldName ":" customerId "," fieldValue ": 2}} "Bu mesaj ne anlama geliyor?
Rishabh Rk Rai
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.