Kristallsprache
Kemal-Routing, das einen Teilbaum umleitet
Dieses Codeschnipsel zeigt Ihnen, wie Sie einen gesamten Teilbaum umleiten und den ersten Teil des Teilbaums entfernen können. Dies kann zum Beispiel nützlich sein, wenn Sie externe Links haben, die auf verschiedene Sprachen (z.B. /de /fr /it) und Inhaltspfade verweisen, und Sie alles von denselben Endpunkten aus bedienen wollen. Crystal Lang...
Weiterlesenmailerlite API-Fehlercode 422 für den Endpunkt subscribers
Heute habe ich die Schnittstelle zwischen PiCockpit.com und der Mailerlite API (die wir für unsere Newsletter-Software verwenden) implementiert. https://api.mailerlite.com/api/v2/subscribers Ich bekam folgende Fehlermeldung: Die POST-Anfrage gab 422 als Statuscode zurück. Leider gibt es nur wenig Dokumentation zu diesem Thema bei Mailerlite. Meine Implementierung war korrekt (dies ist übrigens Crystal Lang):...
WeiterlesenUmgang mit NIL in JSON::Any in Crystal Lang
Eine der Herausforderungen bei der Entwicklung mit Crystal ist, dass es nicht so nachsichtig mit Datentypen umgeht wie z.B. Python oder Ruby. nil wird Sie beschäftigen. Die folgende Fehlermeldung: cast from Nil to String failed, at /usr/share/crystal/src/json/any.cr:220:5:220 kann wie folgt gelöst werden: # cast to string, DANN prüfen, ob es nil ist, wenn...
WeiterlesenSo verwenden Sie Catch-All-Routen mit Kemal
Für eine Vue.js Single-Page-Anwendung - zumindest auf einer SUB-URL unserer Seite - wollen wir ein Catch-All auf unserem Server, das immer die gleiche Vorlage / HTML-Ausgabe an den Browser rendert. Kemal basiert intern auf Radix für das Routing: https://github.com/luislavena/radix Radix hat ein Catch All / Glob Zeichen:...
WeiterlesenPOST-Anfragen mit Axios, Kemal (crystal lang), vue.js zum Laufen bringen
In picockpit.com verwende ich AJAX-Anfragen zur Kommunikation mit dem Backend für Aktualisierungsvorgänge. Wenn Sie z. B. den Namen dieses Pi ändern möchten, wählen Sie:, was ein Inline-Formular anzeigt: Wie man dieses Inline-Formular mit vue.js anzeigt, ist nicht Gegenstand dieses Beitrags (auch wenn es sehr interessant ist!)...
Weiterlesenmongo_orm Exception: fehlender bson-Schlüssel: publish_acl (Exception)
Wenn Sie Ihre Felddefinitionen in den mongo_orm-Dokumentenklassen erweitern, insbesondere mit eingebetteten Dokumenten, können Sie auf den folgenden Laufzeitfehler (!) stoßen: Exception: missing bson key: (Exception) Dies ist kein Fehler in Ihrem Code - Ihr Code wird ausgelöst, weil die Datenbankstruktur nicht so ist, wie er sie erwartet!...
Weiterlesenmongo_orm benutzerdefinierter Name für die Sammlung
mongo_orm bestimmt automatisch den Namen für Ihre Sammlung, indem es den Modul- und Klassennamen verwendet und ein "s" anhängt. In Fällen, in denen Sie Ihre Sammlung benennen möchten, können Sie einfach Folgendes tun: class PapiTest < Mongo::ORM::Document collection_name "Buster" field test : String end get "/" do pt = PapiTest.new pt.test = "Ich möchte...
WeiterlesenAnleitung zum Hinzufügen eines Benutzers zu einer Mongo-Datenbank für mongo_orm
Sie möchten nicht, dass Ihre Webanwendung über Ihren Datenbankadministrator auf die Datenbank zugreift. Außerdem wollen Sie, dass sie nur auf eine bestimmte Datenbank zugreift - vielleicht haben Sie noch weitere Datenbanken in Ihrer Mongo-Instanz laufen. Voraussetzungen: mongo_orm erwartet die Datenbankkonfiguration als Umgebungsvariablen oder als Datei config/database.yml in Ihrem Projekt. Die config/database.yml...
WeiterlesenAufbau eines persistenten Inline-Editing-Erlebnisses mit Crystal, MongoDB (datanoise / sam0x17)
Da die Dokumentation immer noch spärlich ist, würde ich gerne welche hinzufügen. Dies ist das, was ich derzeit baue: Die einzelnen Felder werden mit einem Inline-Editor editierbar sein, der automatisch im Backend gespeichert wird - kein Neuladen der ganzen Seite nötig. Der Sinn des Ganzen ist ein Backend für meine...
Weiterlesenkemal-session hält die Daten nicht aufrecht
https://github.com/kemalcr/kemal-session Analysieren Sie, was mit Ihrem Sitzungscookie geschieht. In meinem Fall wurde der Sitzungs-Cookie jedes Mal zurückgesetzt, wenn ich mich anmelden wollte. Mir wurde klar, dass meine Idee, die alte Sitzung als erste Anweisung nach erfolgreicher Anmeldung zu löschen, bevor ich die neue Sitzung einrichte, keine gute Idee ist. Ich vermute, dass die...
Weiterlesen