Wie sinnvoll ist es API Controller Funktionen direkt aufzurufen?

Hallo zusammen,

Shopware 6 ist ja API-first, d.h. generell scheint zu gelten bswp. auch aus einem selbst programmierten Plugin heraus möglichst viel die API zu verwenden, z.B. um einen Order Status zu ändern.

Jetzt dachte ich mir aber, ist das nicht bisschen umständlich, wenn ich alternativ einen Controller (z.B. OrderActionController) aus dem Service Container rausholen könnte und die Funktion direkt anspreche, weil dann spare ich mir einen HTTP-Request + Authentifizierung zu machen.

Oder ist das falsch?

Viele Grüße

.
ETA: Beispiel

$this->container->get('Shopware\Core\Checkout\Order\Api\OrderActionController')
                    ->orderStateTransition($orderid, 'process', new Request([], ['sendMail' => false]), $context);

Absolut nicht sinnvoll.

Die API wandelt den Request um und ruft dann die Methoden auf, die du direkt aufrufen könntest.

@Max_Shop Ich versteh jetzt deine Antwort nicht… ich rufe ja die Methoden direkt auf. (Siehe Beispiel.)

Die Alternative wäre meiner Meinung nach HTTP-Requests zu generieren und abzuschicken, z.B. mit Guzzle.

Mich würde schon interessieren, wenn’s noch einen anderer direkten Weg gibt. Mit redirectToRoute() bzw. forward() bin ich nicht weitergekommen. (Ich benötige den Statuswechsel in einem eigenen Controller. BTW an einer anderen Stelle möchte ich schon, dass Shopware eine E-Mail versendet. Nur in der Beispielzeile nicht.)