Szukam działającego przykładu modułu obsługującego interfejs API Magento. Jak mogę to zdefiniować, napisać kod i zadzwonić?Przykład interfejsu API Magento
Odpowiedz
config robocze (w app/code/local/ModuleName/etc/Pisałem kopalni w api.xml.):
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<ModuleName>
<version>0.1.0</version>
</ModuleName>
</modules>
<api>
<resources>
<customer translate="title" module="xyz">
<model>ModuleName_Model_Api</model>
<title>Customer Resource</title>
<acl>customer</acl>
<methods>
<info translate="title" module="xyz">
<title>Retrieve customer data</title>
<acl>customer/info</acl>
<method>info</method>
</info>
</methods>
<faults module="xyz">
</faults>
</customer>
</resources>
<acl>
<resources>
<customer translate="title" module="xyz">
<title>Customers</title>
<info translate="title" module="xyz">
<title>Get Info Test</title>
</info>
</customer>
<all>
</all>
</resources>
</acl>
</api>
</config>
kodu PHP (w app/code/local/ModuleName/model /Api.php):
class ModuleName_Model_Api extends Mage_Api_Model_Resource_Abstract
{
function info()
{
return 'xxx';
}
}
kod PHP do faktycznie wywołać interfejs SOAP:
$mageUrl = 'http:/local.magecomm/api/?wsdl';
$mageUser = 'soaptest';
$mageApiKey = 'apitest';
$soap = new SoapClient($mageUrl);
$sessionID = $soap->login($mageUser, $mageApiKey);
var_dump($soap->call($sessionID, 'customer.info', array()));
wynikiem działania wspomnianego skryptu:
C:/Temp>php magesoap.php
string(3) "xxx"
Kilka uwag:
O błędzie: "Nieprawidłowa ścieżka API"
- Oznacza to, że Magento nie może znaleźć modułu.
o Błąd: "Ścieżka zasobu nie jest wywoływalna".
Oznacza to, że Magento nie może wywołać metody w module.
Możesz użyć pliku system.log do debugowania tego. Wyświetli jeden lub więcej błędów o tym, w jaki sposób nie mógł automatycznie ładować żądanej klasy z obliczonej ścieżki pliku.
2011-04-13T15:15:24+00:00 DEBUG (7): include(Mage/Customer/Model/Api.php) [function.include]: failed to open stream: No such file or directoryC:/Development/Projects/MagentoCommercial/lib/Varien/Autoload.php
2011-04-13T15:15:24+00:00 DEBUG (7): include() [function.include]: Failed opening 'Mage/Customer/Model/Api.php' for inclusion (include_path='C:/Development/Projects/MagentoCommercial/app/code/local;C:/Development/Projects/MagentoCommercial/app/code/community;C:/Development/Projects/MagentoCommercial/app/code/core;C:/Development/Projects/MagentoCommercial/lib;.;C:/Development/Libraries;C:/Development/Libraries/Standard/_Pear')C:/Development/Projects/MagentoCommercial/lib/Varien/Autoload.php
o moduł XML-config powyżej powiąże ten interfejs SOAP do nowej pozycji w uprawnieniach API o nazwie "Get Info Test" w grupie "Klienci". Będzie wtedy dostępna dla lub dla określonych użytkowników/ról interfejsu API.
o Wartość poniżej/config/api/resources/customer/methods/info w module-config XML jest wewnętrzną nazwą metody, która powinna być związana z nazwą zasobu SOAP. Jeśli są takie same, możesz to pominąć.
o Wartość poniżej/config/api/resources/customer (która jest "ModuleName_Model_Api") jest tutaj pełną nazwą klasy, ponieważ oczywiście odnosi się do mojej klasy, która nie jest częścią Mag. Jeśli próbujesz wywołać istniejącą klasę w Mag, możesz po prostu użyć skróconej notacji (xxx/yyy, xxx/yyy_zzz, etc.).
o Tylko w części ACL modułu-config wydaje się, że wartość atrybutów "module" (< ... module = "">) ma znaczenie. Mimo wszystko, upewnij się, że jest ustawiony prawidłowo (sprawa nie ma znaczenia) wszędzie. Możliwe, że po prostu nie zaimplementowali go w głównym nurcie, a ignorowanie go spowoduje później problemy.
Dustin Oprea
- 1. Magento - zaktualizuj status zamówienia za pośrednictwem interfejsu API
- 2. Użyj interfejsu API odpoczynku Magento z widokiem wielu sklepów
- 3. Przekazywanie dynamicznego obiektu JSON do interfejsu API WWW - Newtonsoft Przykład
- 4. Przykład wywoływania interfejsu API AWS Rekognition HTTP z języka Python
- 5. Jak pobrać lokalizację urządzenia przy użyciu interfejsu API interfejsu API?
- 6. Przykład makiety RSpec Przykład
- 7. Dokumentacja interfejsu API GraphQL API
- 8. Android: Obsługa Preapproval API Paypal (wymagany przykład)
- 9. Adaptacyjna płatność równoległa z REST API Przykład?
- 10. Magento API V2 - dodaj dodatkowy atrybut do odpowiedzi API
- 11. Dokumentacja interfejsu API JQGrid
- 12. Zdjęcie interfejsu API Instagrama
- 13. Dokumentacja interfejsu API Roslyn
- 14. przykład Kalendarz Google API bez bibliotek
- 15. oauth2orize za pomocą interfejsu API?
- 16. Limity interfejsu YouTube Data API?
- 17. Ograniczenia interfejsu API Power BI
- 18. Dysk Google API interfejsu API javascript
- 19. Wielokrotne wstawianie interfejsu API Mailgun API Partia
- 20. Używanie ServiceStack jako warstwy interfejsu API API
- 21. Magento SOAP API Lista produktów Pagina
- 22. Przykład interfejsu API DropBox PUT przy użyciu Curl i Oauth 2, aby przesłać plik do DropBox
- 23. Korzystanie z interfejsu AppEngine/Go Users API z OAuth: przykład kodu, przepływ pracy, jakaś pomoc?
- 24. Geokodowanie bez interfejsu API Google?
- 25. Obsługa interfejsu API wibracji HTML5
- 26. Implementacja interfejsu WCF API Wersja
- 27. Dane interfejsu API uczelni/uczelni
- 28. Zalety interfejsu ES6 Reflect API
- 29. Uwierzytelnianie interfejsu API Dysk Google
- 30. Kanał komentarzy interfejsu API YouTube
Używane tutaj "API" jest niejasne. MYDŁO? RPC? Natywne wywołania PHP w języku Magento? Bądź bardziej konkretny, a ktoś ci pomoże. –
Do zdefiniowania modułu połączonego z interfejsem API potrzebny jest tylko kod XML. –