Saya mencoba mendefinisikan skema referensi untuk digunakan sebagai tipe peta Cassandra CQL dengan bidang teks. Secara khusus, saya ingin memetakan URI ke string.
Saat ini saya punya:
"scope": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"format": "uri"
},
"permission": {
"type": "string",
"enum": ["read_only", "read_write", "write_only"]
}
},
"required": ["uri", "permission"],
"additionalProperties": false
}
Ini bagus untuk data seperti
{"uri":"http://example.com",
"permission": "read_only"}
Tapi saya ingin skema untuk data seperti
{"http://example.com": "read_only"}
http://spacetelescope.github.io/understanding-json-schema/reference/object.html punya solusinya:
{
"type": "object",
"patternProperties": {
"^S_": { "type": "string" },
"^I_": { "type": "integer" }
}
}
Masalahnya adalah saya harus mendefinisikan format bawaan dengan ekspresi reguler. Melihat contoh regex untuk URI membuat saya ingin menghindari hal ini.
Karena jumlah URI yang saya miliki terbatas, pemetaan enum ke enum juga bisa menjadi solusi. Apakah itu bisa dilakukan?