2016-05-14 9 views
0

Ich muss einen benutzerdefinierten ID-Validator erstellen, der auf eine einzelne Sammlung angewendet wird, deren ID immer vordefiniert ist (benötigt keinen Generator).Wie erstelle ich einen Validator für eine einzelne Sammlung?

Im docs über id-Generatoren, ist es geschrieben:

Derzeit ist die Konfiguration des benutzerdefinierten Generators alle Ressourcen gilt (Eimer, Gruppen, Sammlungen, Aufzeichnungen). Diese kleine Einschränkung kann leicht behoben werden, zögern Sie nicht, uns zu kontaktieren!

Aber es ist nichts über die ID-Validierung dokumentiert.

Also, wie ich: nur

  1. Implementieren eines id Validator, dass
  2. einer Sammlung gelten?

Antwort

0

Standardmäßig cliquet uses a generator akzeptiert den folgenden regulären Ausdruck r'^[a-zA-Z0-9][a-zA-Z0-9_-]*$' (Alle Buchstaben und Zahlen + Unterstrich und "-").

Bevor Sie sich für einen anderen ID-Validierungsmechanismus entschieden haben, stellen Sie sicher, dass Sie dies wirklich müssen.

Nun, wenn das nicht genug ist, müssten Sie den richtigen Validator abhängig von einer Konfiguration oder bereits vorhandenen Werten auswählen, aber dies ist nicht in Cliquet/Kinto implementiert.

https://github.com/mozilla-services/cliquet/blob/master/cliquet/resource/init.py#L147 ist wahrscheinlich ein guter Ort zum Anschauen/Beginnen mit.

+1

Ich verwendete Kinto.js und es lehnte mich ab, ein Objekt zu erstellen, das eine nicht UUID4 formatierte Zeichenfolge verwendet. Dies scheint von Kinto.js (nicht kinto-server) auferlegt zu sein, wie man aus Ihrer Antwort schließen kann. Das Ändern des ID-Validierungsschemas * ausschließlich * auf Kinto.js hat den Trick gemacht. Für die Nachwelt: http://kintojs.readthedocs.io/en/latest/api/#custom-id-generation-using-an-id-schema. – doplumi

+0

Eigentlich, was ich im letzten Kommentar gesagt habe, ist nur teilweise wahr: Sie können Kinto.js eine nicht UUID4-ID akzeptieren, aber wenn Sie '.sync()', erhalten Sie einen 'Pfad: Ungültige ID' Fehler, Bedeutung' Der kinto-server will immer noch UUID4. Um den zukünftigen Lesern einen Ausweg zu bieten, ist das Tutorial in der Dokumentation (http://kinto.readthedocs.io/en/latest/tutorials/custom-id-generator.html?highlight=id%20generator) gut für Sie sind OK, wenn Sie die ID-Generierung/Validierung global bearbeiten. Ich verstehe immer noch nicht, wie ich es pro Kollektion ändern kann. – doplumi

+0

Diese Einschränkung wurde in Kinto 3.2 entfernt – Natim

Verwandte Themen