# REST API lokaler Zugriff

**URL:** <https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [21. Januar 2013 um 16:09 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093 "2013-01-21T16:09:28Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![reiterth](https://avatars.discourse-cdn.com/v4/letter/r/ea666f/32.png) [@reiterth](https://forum.shopware.com/u/reiterth)\
**Post date:** [21. Januar 2013 um 16:09 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/1 "2013-01-21T16:09:28Z")

</div>

Hallo, ich möchte für einen relativ komplexen Import die REST API per lokalem Zugriff verwenden. Sämltiche Importscripts befinden sich in einem Verzeichnis außerhalb des SW Documentroots (z.B. /data/import). Welche SW Dateien muss ich includieren um mit dem Beispiel unter [Ich kann den SW Beispiel Link “Rest API Tutorial - Lokaler Zugriff” leider nicht posten] weiter zu kommen? Beste Grüße Thomas

---

<div class="post-metadata">

**Author:** ![mablae](https://avatars.discourse-cdn.com/v4/letter/m/ed8c4c/32.png) [@mablae](https://forum.shopware.com/u/mablae)\
**Post date:** [22. Januar 2013 um 13:08 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/2 "2013-01-22T13:08:35Z")

</div>

Die RestApi läuft über http! Sonst ist es keine RestApi! D.h. deine Importscripts arbeiten gegen die Schnittstelle auf [http://localhost/](http://localhost/) Du brauchst für deine Importscripts lediglich einen HTTP-Client für PHP zB Buzz ([https://github.com/kriswallsmith/Buzz.git](https://github.com/kriswallsmith/Buzz.git)). Dann sendest du einfach die Requests und bekommst JSON zurück. Mit dem DocumentRoot hat das nichts zu tun. Besten Gruß Malte

---

<div class="post-metadata">

**Author:** ![reiterth](https://avatars.discourse-cdn.com/v4/letter/r/ea666f/32.png) [@reiterth](https://forum.shopware.com/u/reiterth)\
**Post date:** [22. Januar 2013 um 13:18 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/3 "2013-01-22T13:18:51Z")

</div>

Was hab ich dann bei: Die Shopware Rest API ist prädestiniert für den Datenaustausch mit externen Schnittstellen. Sollten Sie eine Schnittstelle / Projekt entwickeln das direkt in Shopware integriert werden soll, so können Sie den “Umweg” über den HTTP-Request umgehen und direkt auf die API zugreifen. falsch verstanden? Siehe [wiki.shopware.de/Rest-API-Tutorial-Lokaler-Zugriff\_detail\_865\_720.html](http://wiki.shopware.de/Rest-API-Tutorial-Lokaler-Zugriff_detail_865_720.html)

---

<div class="post-metadata">

**Author:** ![mablae](https://avatars.discourse-cdn.com/v4/letter/m/ed8c4c/32.png) [@mablae](https://forum.shopware.com/u/mablae)\
**Post date:** [22. Januar 2013 um 13:26 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/4 "2013-01-22T13:26:21Z")

</div>

Okay… es geht wohl auch. Dann spricht man aber nicht mehr von einer RestApi… 😉 Wegen deinem Problem: Was spricht dagegen, die RestApi über HTTP lokal anzusprechen? Ist in deinem Fall auf jeden Fall einfacher, weil deine Scripts „standalone“ bleiben. Besten Gruß Malte

---

<div class="post-metadata">

**Author:** ![reiterth](https://avatars.discourse-cdn.com/v4/letter/r/ea666f/32.png) [@reiterth](https://forum.shopware.com/u/reiterth)\
**Post date:** [22. Januar 2013 um 13:48 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/5 "2013-01-22T13:48:46Z")

</div>

@RestApi - ja der Begriff ist in dem Fall falsch. Was spricht gegen den HTTP Request: Ich denke mal die Performance, bei ~ 40.000 Artikel, 6 Subshops wo jeder eigene Preise hat etc. Hier wäre ein nativerer Zugriff sicher von Vorteil. Ich bin aber auch am überlegen, ob ich nicht direkt in die DB schreiben soll. Beste Grüße Thomas

---

<div class="post-metadata">

**Author:** ![mablae](https://avatars.discourse-cdn.com/v4/letter/m/ed8c4c/32.png) [@mablae](https://forum.shopware.com/u/mablae)\
**Post date:** [22. Januar 2013 um 16:34 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/6 "2013-01-22T16:34:45Z")

</div>

Den größten Overhead erzeugt das ORM Doctrine, wenn du über die API gehst. Die HTTP-Request machen den kleinsten Anteil aus. Wenn du wirklich Leistung brauchst, geht wohl nichts über native Queries mit INSERT Statements… Am besten immer 300-500 Datensätze erstellen, dann in einem INSERT Statement an die DB senden. Das brachte bei mir hier den größten Leistungszuwachs. Vorher hatte ich jeden Artikel einzeln eingefügt. Gruß Malte

---

<div class="post-metadata">

**Author:** ![reiterth](https://avatars.discourse-cdn.com/v4/letter/r/ea666f/32.png) [@reiterth](https://forum.shopware.com/u/reiterth)\
**Post date:** [22. Januar 2013 um 17:17 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/7 "2013-01-22T17:17:57Z")

</div>

Über ORM Overheads kann ich auch schon Lieder singen … Ich würde die HTTP Request aber auch nicht unterschätzen. Uns wurde halt von SW nahe gelegt doch die RestApi zu verwenden. Ich bin da bei unseren Datenmengen und Updatezyklen, schon ohne es gestestet zu haben, sketpisch! Ich werde also gleich nativ die DB quälen, und vielleicht für Update von Bestellungen die RestApi verwenden. Hast du vielleicht irgendwo ein ER-Diagramm gefunden? Gruß Thomas

---

<div class="post-metadata">

**Author:** ![mablae](https://avatars.discourse-cdn.com/v4/letter/m/ed8c4c/32.png) [@mablae](https://forum.shopware.com/u/mablae)\
**Post date:** [22. Januar 2013 um 22:06 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/8 "2013-01-22T22:06:05Z")

</div>

Ein Diagram hab ich nicht zur Hand… Im MySQL Tools Package gibt es einen kostenlosen DB-Designer der bestehende Datenbanken in Diagramme umwandelt. Man kann auch Felder hinzufügen und danach wieder das SQL Ausgeben: [http://dev.mysql.com/downloads/workbench/5.2.html](http://dev.mysql.com/downloads/workbench/5.2.html) Gruß Mablae

---

<div class="post-metadata">

**Author:** ![farbplatoon](https://avatars.discourse-cdn.com/v4/letter/f/977dab/32.png) [@farbplatoon](https://forum.shopware.com/u/farbplatoon)\
**Post date:** [5. Februar 2013 um 18:47 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/9 "2013-02-05T18:47:57Z")

</div>

Ich würde nur über den Datenbanklayer gehen, wenn du wirklich extreme Performanceprobleme hast: Die Shopware API handhabt zB auch entsprechenende Abhängigkeiten wie Bildergrößen, Rotating Tables zwischen Articles und Categories, etc. Wenn es doch danach geht, kannst du auch einfach mit Doctrine entsprechende Metaklassen erstellen und daraus dann die gemappten Entities. Auch Doctrine2 ist mittlerweile nicht mehr so besch… wie der Vorgänger und kann durchaus größeres Queues ohne größere Performanceprobleme handhaben. Doctrine ansonsten halt auch kein Layer der für Importschleifen konzipiert wurde - Das Projekt erhält seine Stärke vor allem durchs Caching. Ich hoffe hier natürlich, dass die Shopware Entwickler bald nachziehen und die Prozesse optimieren. Ansonsten geh einfach über die HTTP Restful API oder nutze die entsprechenden Klassen von Enlight. Ich schiebe über nacht jeweils 5000 Artikelupdates über HTTP rein. Insofern man ein wenig Ahnung von Performance hat und man versteht was Laufzeit überhaupt bedeutet, ist das ganze kein Problem. ( Etwas dauern tut es trotzdem. Bei 5000 Artikeln mit Bildern so ca 45 Minuten bis der ganze Index aufgebaut ist usw. Ist in dem Fall aber verkraftbar ) VG

---

<div class="post-metadata">

**Author:** ![farbplatoon](https://avatars.discourse-cdn.com/v4/letter/f/977dab/32.png) [@farbplatoon](https://forum.shopware.com/u/farbplatoon)\
**Post date:** [5. Februar 2013 um 18:53 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/10 "2013-02-05T18:53:36Z")

</div>

Wegen des Mappings: Man kann natürlich auch einfach die Shopwaremodel reinladen --\> hat den Vorteil, dass man auch direkt alles Foreigns etc hat.

---

<div class="post-metadata">

**Author:** ![bheider](https://avatars.discourse-cdn.com/v4/letter/b/f19dbf/32.png) [@bheider](https://forum.shopware.com/u/bheider)\
**Post date:** [6. Februar 2013 um 17:36 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/11 "2013-02-06T17:36:42Z")

</div>

Mit der Verwendung von enlight wäre ich vorsichtig. Irgendwie verschwinden gerade alle Verweise auf der Shopware-Seite.

---

<div class="post-metadata">

**Author:** ![mablae](https://avatars.discourse-cdn.com/v4/letter/m/ed8c4c/32.png) [@mablae](https://forum.shopware.com/u/mablae)\
**Post date:** [8. Februar 2013 um 08:50 UTC](https://forum.shopware.com/t/rest-api-lokaler-zugriff/11093/12 "2013-02-08T08:50:31Z")

</div>

Enlight ist deprecated. Und das ist gut so.
