2.4 KiB
2.4 KiB
🧱 Blockly-Terminal-Bridge Logbuch
📅 Datum: 2025-06-05
🎯 Ziel
Eine funktionierende Verbindung zwischen Blockly-Editor und Crumbforest-Terminal herstellen, um kindgerecht generierten Code in ein Backend zu übertragen und dort zu verarbeiten.
✅ Ergebnis
Die Verbindung steht. Blockly sendet erfolgreich generierten Code über eine POST-Anfrage an das CakePHP 5 Backend. Die API antwortet mit einer Erfolgsmeldung.
🧠 Beispielhafte Nutzereingabe in Blockly
Blockly-Blöcke:
set item to 0
if item = 0
print "Wuhuuu"
Generierter Code:
var item;
item = 0;
if (item == 0) {
window.alert('Wuhuuuu');
}
Antwort der API:
{
"status": "success",
"message": "Blockcode received.",
"received": "var item;\n\n\nitem = 0;\nif (item == 0) {\n window.alert('Wuhuuuu');\n}\n"
}
🔄 Häufige Fehlerquellen und Lösungsschritte
❌ CSRF Fehler
- Fehler:
Missing or incorrect CSRF cookie type. - Lösung: Im
Application.phpwurde der CSRF-Schutz für alle Pfade unter/crumbapi/deaktiviert:
'skipCheckCallback' => function (ServerRequestInterface $request) {
return str_starts_with((string)$request->getUri()->getPath(), '/crumbapi/');
}
❌ Authentication Error
- Fehler:
The request object does not contain the requiredauthenticationattribute. - Lösung: Manuelles Einfügen eines leeren AuthenticationService im Middleware-Stack für API-Pfade:
if (str_starts_with($path, '/crumbapi/')) {
$emptyAuthService = new AuthenticationService();
$request = $request->withAttribute('authentication', $emptyAuthService);
return $handler->handle($request);
}
❌ MethodNotAllowedException
- Fehler:
Method Not Allowed - Lösung: In
routes.phpwurde explizit die POST-Methode registriert:
$builder->connect(
'/blockly-terminal',
['controller' => 'Crumbapi', 'action' => 'blocklyTerminal'],
['_method' => ['POST']]
);
🖼️ Visuelle Dokumentation
- Blockly-Blockstruktur [siehe Anhang: PXL_20250605_200744146.MP.jpg]
- Terminal-Ausgabe mit JSON-Antwort [siehe Anhang: PXL_20250605_200838143.MP.jpg]
❤️ Dank an die Crew
Ein riesiges Wuhuuuu an alle Beteiligten für die Geduld, Kreativität und Hartnäckigkeit auf diesem Weg durch die Backstube der Zukunft.
"Wenn ein Block zuckt, hört das Terminal das Echo."
Wuhuuuu!
🧁 #Crumbforest #BlocklyBridge #BitLove