# Die Liste der Units aus der Tabelle "s\_core\_units" über REST API auslesen?

**URL:** <https://forum.shopware.com/t/die-liste-der-units-aus-der-tabelle-s-core-units-uber-rest-api-auslesen/35954>\
**Category:** Programmierung\
**Created:** [12. April 2016 um 10:12 UTC](https://forum.shopware.com/t/die-liste-der-units-aus-der-tabelle-s-core-units-uber-rest-api-auslesen/35954 "2016-04-12T10:12:42Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![alexost](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@alexost](https://forum.shopware.com/u/alexost)\
**Post date:** [12. April 2016 um 10:12 UTC](https://forum.shopware.com/t/die-liste-der-units-aus-der-tabelle-s-core-units-uber-rest-api-auslesen/35954/1 "2016-04-12T10:12:42Z")

</div>

Hallo zusammen,

ich habe keine API-Resource gefunden, über die man die Liste von Units (Liter, Gramm, Stück, Paket… usw) auslesen kann. Mann kann im Backend eine “Ressource” und “Privileg” erstellen und dem User zuweisen (erlauben), aber wie erstellt man entsprechende Controller, Components usw.? Gibt es ein Tutorial, das so was beschreibt?

---

<div class="post-metadata">

**Author:** ![t2oh4e](https://avatars.discourse-cdn.com/v4/letter/t/a5b964/32.png) [@t2oh4e](https://forum.shopware.com/u/t2oh4e)\
**Post date:** [12. April 2016 um 11:19 UTC](https://forum.shopware.com/t/die-liste-der-units-aus-der-tabelle-s-core-units-uber-rest-api-auslesen/35954/2 "2016-04-12T11:19:46Z")

</div>

Das hier sollte die helfen:&nbsp;[http://community.shopware.com/Shopware-4-API-erweitern\_detail\_991\_869.html](http://community.shopware.com/Shopware-4-API-erweitern_detail_991_869.html)

Hab es mir jetzt nicht im Detail angesehen, aber das müsste auch in SW5 noch so funktionieren.

---

<div class="post-metadata">

**Author:** ![steinsoftware](https://avatars.discourse-cdn.com/v4/letter/s/b487fb/32.png) [@steinsoftware](https://forum.shopware.com/u/steinsoftware)\
**Post date:** [12. April 2016 um 13:10 UTC](https://forum.shopware.com/t/die-liste-der-units-aus-der-tabelle-s-core-units-uber-rest-api-auslesen/35954/3 "2016-04-12T13:10:38Z")

</div>

Und auch hier:

[https://developers.shopware.com/developers-guide/](https://developers.shopware.com/developers-guide/)

---

<div class="post-metadata">

**Author:** ![alexost](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@alexost](https://forum.shopware.com/u/alexost)\
**Post date:** [12. April 2016 um 14:17 UTC](https://forum.shopware.com/t/die-liste-der-units-aus-der-tabelle-s-core-units-uber-rest-api-auslesen/35954/4 "2016-04-12T14:17:59Z")

</div>

Vielen Dank, das Tutorial „Shopware 4 API erweitern“ hatte ich auch schon gefunden und versucht umzusetzen, aber wusste nicht genau in welches Verzeichnis das API-Plugin unter SW5 muss.

Es gibt in SW5 unter /engine/Shopware/Plugins/Local/ drei Unterverzeichnisse - Backend, Core und Frontend.&nbsp; Der Logik entsprechend (/engine/Shopware/Controllers/) habe ich das Plugin in einem Verzeichnis /engine/Shopware/Plugins/Local/Api/ erstellt und nichts hat funktioniert. Ich bin dann davon ausgegangen, dass unter SW5 das Ganze anders konfiguriert wird aber nichs weiteres dazu gefunden.

Jetzt habe ich ich das Plugin nach /engine/Shopware/Plugins/Local/Backend/ verschoben und konnte schon mal installieren, aktivieren und aufrufen.

Alles aus dem Beispiel mit „User“ und „Users“ durch „Unit“ und „Units“ ersetzt und überall in der Unit-Resource

```
_\Shopware\Models\User\__User_

```

durch

```
_\Shopware\Models\Article\__Unit_

```

ersetzt. Das Auslesen der Units-Liste per GET funktioniert!

&nbsp;

Beim Versuch eine Unit mit POST zu erstellen, wird allerdings eine Exception geworfen: in der Methode Unit::create() die Zeile:

```
_$params = $this-\>prepareUnitData($params);_

```

Die _prepareUnitData()_ habe ich analog zu _prepareUserData()_ übernommen. Nach Prüfung habe ich aber festgestellt, das auch die _prepareUserData()_, aufgerufen in User.php, nirgendwo definiert ist.

Kommt die Methode _prepareUserData()_ aus SW4 und wurde in SW5 entfernt? Oder ist es eine „magische“ Methode, warum funktioniert das dann für _prepareUnitData()_ nicht?

Wie soll das Array $params für das Übergeben an $unit-\>fromArray() aussehen?

Hat jemand eine Idee?

---

<div class="post-metadata">

**Author:** ![alexost](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@alexost](https://forum.shopware.com/u/alexost)\
**Post date:** [12. April 2016 um 14:23 UTC](https://forum.shopware.com/t/die-liste-der-units-aus-der-tabelle-s-core-units-uber-rest-api-auslesen/35954/5 "2016-04-12T14:23:15Z")

</div>

Der POST-Request sieht dann so aus:

```
 $client-\>call('units', ApiClient::METHODE\_POST, [array](http://www.php.net/array)( 'unit' =\> 'qm', 'description' =\> 'Quadratmeter', ));
```

---

<div class="post-metadata">

**Author:** ![alexost](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@alexost](https://forum.shopware.com/u/alexost)\
**Post date:** [12. April 2016 um 15:32 UTC](https://forum.shopware.com/t/die-liste-der-units-aus-der-tabelle-s-core-units-uber-rest-api-auslesen/35954/6 "2016-04-12T15:32:37Z")

</div>

Ok, jetzt habe ich’s:

in der Unit.php unter /engine/Shopware/Plugins/Local/Backend/SwagExtendApi/Components/Api/Resource/ muss man die Methode erstellen:

```
_/\*\*_ _\*_ _@param_ _array $params_ _\*_ _@return_ _mixed_ _\*_ _@throws_ _ApiException\ParameterMissingException_ _\*/_ **private function** prepareUnitData($params){ **if** (! **isset** ($params['unit']) || **empty** ($params['unit'])) { **throw new** ApiException\ParameterMissingException(); } **if** (! **isset** ($params['description']) || **empty** ($params['description'])) { **throw new** ApiException\ParameterMissingException(); } $params['unit'] = $params['unit']; $params['name'] = $params['description']; **return** $params; }

```

&nbsp;

Dann klappt es auch mit dem POST-Request!

&nbsp;

---

<div class="post-metadata">

**Author:** ![koelle](https://avatars.discourse-cdn.com/v4/letter/k/bcef8e/32.png) [@koelle](https://forum.shopware.com/u/koelle)\
**Post date:** [9. Juni 2016 um 14:01 UTC](https://forum.shopware.com/t/die-liste-der-units-aus-der-tabelle-s-core-units-uber-rest-api-auslesen/35954/7 "2016-06-09T14:01:16Z")

</div>

ich stehe gerade vor dem gleichen Problem, wäre es evetuell möglich die Anpassungen dafür von dir zu bekommen?

&nbsp;

Grüße

Stephan
