# Eigenen API Endoint ohne Resource

**URL:** <https://forum.shopware.com/t/eigenen-api-endoint-ohne-resource/55922>\
**Category:** Programmierung\
**Created:** [23. Oktober 2018 um 08:32 UTC](https://forum.shopware.com/t/eigenen-api-endoint-ohne-resource/55922 "2018-10-23T08:32:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![langnickel](https://avatars.discourse-cdn.com/v4/letter/l/3ec8ea/32.png) [@langnickel](https://forum.shopware.com/u/langnickel)\
**Post date:** [23. Oktober 2018 um 08:32 UTC](https://forum.shopware.com/t/eigenen-api-endoint-ohne-resource/55922/1 "2018-10-23T08:32:27Z")

</div>

Frage, kann ich bei Shopware einen eigenen API Endpoint einrichten, der nicht auf eine bestimmte Resource geht? Ich weiß REST, CRUD und so, ich brauch aber eine Möglichkeit (Wartungs)Aktionen von extern auszuführen, ohne mich um Authentifizierung zu sorgen, alternativ nen Backend-Controller, nur wie mache ich das mit der&nbsp;Authentifizierung dann?

Ich möchte folgendes Ergebnis bewerkstelligen: POST auf /api/MyCompany/doSomeTask - (body mit werten wird gesendet), GET auf /api/MyCompany/doAnotherTask (ohne body, eventuell query params)

&nbsp;

OK, GET klappt zumindest schonmal ein wenig, wenn in der indexAction auf Request-\>has(’…’) schaue, aber post wär schon super irgendwie 😕

---

<div class="post-metadata">

**Author:** ![PStadtfeld](https://avatars.discourse-cdn.com/v4/letter/p/3bc359/32.png) [@PStadtfeld](https://forum.shopware.com/u/PStadtfeld)\
**Post date:** [24. Oktober 2018 um 10:25 UTC](https://forum.shopware.com/t/eigenen-api-endoint-ohne-resource/55922/2 "2018-10-24T10:25:21Z")

</div>

Generell kannst du dich in die API einklinken und eigene Endpoints erstellen mit einem eigenen Plugin.

Die Datei würde dann so in etwa aussehen:

```
 'onGetThemaApiController',
            'Enlight_Controller_Front_StartThema' => 'onEnlightControllerFrontStartThema'
        ];
    }

    /**
     * @return string
     */
    public function onGetThemaApiController()
    {
        return $this->getPath() . '/Controllers/Api/Thema.php';
    }

    /**
     *
     */
    public function onEnlightControllerFrontStartThema()
    {
        $this->container->get('loader')->registerNamespace('Shopware\Components', $this->getPath() . '/Components/');
    }
}

```

In einem Controller würdest du dann die Funktionen definieren, welche bei den jeweiligen Aufrufen stattfinden sollen.

Am Besten mal hier schauen : [https://developers.shopware.com/developers-guide/rest-api/plugin-api-extension/](https://developers.shopware.com/developers-guide/rest-api/plugin-api-extension/)

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [24. Oktober 2018 um 15:54 UTC](https://forum.shopware.com/t/eigenen-api-endoint-ohne-resource/55922/3 "2018-10-24T15:54:51Z")

</div>

Du brauchst die beiden Events garnicht. Bloß in PluginName/Controllers/Api/ControllerName.php den Controller anlegen mit richtigen Klassen Namen. Dann sollte es schon gehen. Du kannst dir sonst Udemy anschauen, dort sollte erklärt werden wie man API Controller anlegt

---

<div class="post-metadata">

**Author:** ![langnickel](https://avatars.discourse-cdn.com/v4/letter/l/3ec8ea/32.png) [@langnickel](https://forum.shopware.com/u/langnickel)\
**Post date:** [24. Oktober 2018 um 16:01 UTC](https://forum.shopware.com/t/eigenen-api-endoint-ohne-resource/55922/4 "2018-10-24T16:01:33Z")

</div>

@Shyim‍&nbsp; Das Anlegen des Controllers ist nicht das Problem. Ich bekomme es nur nicht hin, dass der API Controller mit Post/Put/Delete funktioniert wenn ich ihn von&nbsp;Shopware\_Controllers\_Api\_Rest ableite, da das field “resource” fehlt (gewollt). Get funktioniert bis jetzt. Oder soll ich Ihn garnicht ableiten? Das hab ich noch nicht probiert
