Hallo zusammen, ich beschäftige mich erst seit heute mit der Api. Im ersten Schritt wollte ich erst mal alle Artikel ausgeben, Ich habe die Klasse benutzt hier aus dem Tutorial und anschliessend die entsprechende Funktion zur Ausgabe alle Artikel. Leider kommt dann folgende Meldung: {"success":false,"message":"Resource not found"}
Mein Code sie wie folgt aus: [code] class ApiClient { const METHODE_GET = ‚GET‘; const METHODE_PUT = ‚PUT‘; const METHODE_POST = ‚POST‘; const METHODE_DELETE = ‚DELETE‘; protected $validMethods = array( self::METHODE_GET, self::METHODE_PUT, self::METHODE_POST, self::METHODE_DELETE ); protected $apiUrl; protected $cURL; public function __construct($apiUrl, $username, $apiKey) { $this->apiUrl = rtrim($apiUrl, ‚/‘) . ‚/‘; //Initializes the cURL instance $this->cURL = curl_init(); curl_setopt($this->cURL, CURLOPT_RETURNTRANSFER, true); curl_setopt($this->cURL, CURLOPT_FOLLOWLOCATION, true); curl_setopt($this->cURL, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST); curl_setopt($this->cURL, CURLOPT_USERPWD, $username . ‚:‘ . $apiKey); curl_setopt($this->cURL, CURLOPT_HTTPHEADER, array( ‚Content-Type: application/json; charset=utf-8‘, )); } public function call($url, $method = self::METHODE_GET, $data = array(), $params = array()) { if (!in_array($method, $this->validMethods)) { throw new Exception('Invalid HTTP-Methode: ’ . $method); } $queryString = ‚‘; if (!empty($params)) { $queryString = http_build_query($params); } $url = rtrim($url, ‚?‘) . ‚?‘; $url = $this->apiUrl . $url . $queryString; $dataString = json_encode($data); curl_setopt($this->cURL, CURLOPT_URL, $url); curl_setopt($this->cURL, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($this->cURL, CURLOPT_POSTFIELDS, $dataString); $result = curl_exec($this->cURL); $httpCode = curl_getinfo($this->cURL, CURLINFO_HTTP_CODE); return $this->prepareResponse($result, $httpCode); } public function get($url, $params = array()) { return $this->call($url, self::METHODE_GET, array(), $params); } public function post($url, $data = array(), $params = array()) { return $this->call($url, self::METHODE_POST, $data, $params); } public function put($url, $data = array(), $params = array()) { return $this->call($url, self::METHODE_PUT, $data, $params); } public function delete($url, $params = array()) { return $this->call($url, self::METHODE_DELETE, array(), $params); } protected function prepareResponse($result, $httpCode) { echo "
HTTP: $httpCode
"; if (null === $decodedResult = json_decode($result, true)) { $jsonErrors = array( JSON_ERROR_NONE => ‚Es ist kein Fehler aufgetreten‘, JSON_ERROR_DEPTH => ‚Die maximale Stacktiefe wurde erreicht‘, JSON_ERROR_CTRL_CHAR => ‚Steuerzeichenfehler, möglicherweise fehlerhaft kodiert‘, JSON_ERROR_SYNTAX => ‚Syntaxfehler‘, ); echo "
Could not decode json
"; echo "json_last_error: " . $jsonErrors[json_last_error()]; echo "
Raw:
"; echo "
" . print\_r($result, true) . "
"; return; } if (!isset($decodedResult[‚success‘])) { echo „Invalid Response“; return; } if (!$decodedResult[‚success‘]) { echo "
No Success
"; echo "
" . $decodedResult[‚message‘] . "
"; return; } echo "
Success
"; if (isset($decodedResult[‚data‘])) { echo "
" . print\_r($decodedResult['data'], true) . "
"; } return $decodedResult; } } $client = new ApiClient( //URL des Shopware Rest Servers ‚‘, //Benutzername ‚‘, //API-Key des Benutzers ‚‘ ); $client->get(‚articles‘); ?>[/code] Mache ich etwas falsch? Bin für jede Hilfe dankbar.