2016-05-14 8 views
0

idが常に事前定義されている(生成器は必要ない)単一のコレクションに適用されるカスタムIDバリデータを作成する必要があります。 ID生成器についてdocs1つのコレクションに対してバリデータを作成するにはどうすればよいですか?

、それが書かれています:

現在のカスタム・ジェネレータの構成は、すべてのリソース(バケット、グループ、コレクション、記録)に適用されます。この小さな制限は簡単に修正することができます、私たちと連絡を取ることを躊躇しないでください!

しかし、ID検証については何も書かれていません。

だから、どのように私ん:

  1. が一つだけのコレクションに適用されること、ID バリを実装しますか?

答えて

0

デフォルトではcliquet uses a generatorで、次の正規表現r'^[a-zA-Z0-9][a-zA-Z0-9_-]*$'(すべての文字と数字+アンダースコアと " - ")を使用できます。

異なるID検証メカニズムを選択する前に、本当に必要なことを確認してください。

これで十分でない場合は、設定や既存の値に応じて適切なバリデーターを選択する必要がありますが、cliquet/kintoでは実装されていません。

https://github.com/mozilla-services/cliquet/blob/master/cliquet/resource/init.py#L147は、おそらく/見るのには良い場所です。

+1

私はKinto.jsを使用していましたが、UUID4以外の形式の文字列を使用してオブジェクトを作成することを拒否しました。これはあなたの答えから推測できるKinto.js(kinto-serverではなく)によって課されるようです。 id検証スキーマを変更する* Kinto.jsだけで*トリックをしました。後世のため:http://kintojs.readthedocs.io/en/latest/api/#custom-id-generation-using-an-id-schema。 – doplumi

+0

実際には、私が最後のコメントで言ったことは部分的にしか真実ではありません:あなたはKinto.jsに非UUID4 IDを受け入れることができますが、 '.sync()'を実行すると 'path:Invalid id'エラー、 kinto-server'は依然としてUUID4を望んでいます。将来の読者に道を提供するために、docs(http://kinto.readthedocs.io/en/latest/tutorials/custom-id-generator.html?highlight=id%20generator)のチュートリアルは、 IDの生成/検証をグローバルに編集することでOKです。私はまだコレクションごとにそれを変更する方法を理解していません。 – doplumi

+0

この制限はKinto 3.2で削除されました – Natim

関連する問題