Desidero collegare un UUID a un campo nel mio esempio di messaggio utente protobuf.Come si rappresenta un UUID in un messaggio protobuf?
message User {
// field containing id as UUID type
required string email;
optional string name;
}
So che i messaggi protobuf non supportano ancora il tipo UUID. Ho letto che l'approccio migliore è avere un tipo di messaggio UUID.
Così sto cercando di indovinare il mio messaggio per l'utente sarebbe importare il mio messaggio UUID definizione proto e usarlo come un tipo di campo in questo modo:
import "myproject/UUID.proto";
message User {
required UUID id;
required string email;
optional string name;
}
La mia domanda è, come sarà l'aspetto messaggio UUID come, e in che modo lo codifico/decodificherò? Sto puntando sulla compatibilità Java/Scala e C#.
Grazie Kenton, la tua risposta è stata chiara e utile. Penso che proverò a percorrere la strada dell'uso dei byte in modo che il messaggio consumi solo un po 'meno larghezza di banda. L'UUID assume la forma di 'xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx', sapresti come ottenere il valore grezzo a 128 bit da questo modulo nel modo più efficiente possibile? O qualche risorsa online che possa farmi andare nella giusta direzione? –
Nevermind, memorizzare l'UUID come una stringa rende le cose molto meno dolorose ... –
@Hyperreal: FWIW, per convertire in byte rimuovere i trattini e quindi interpretare il resto come una stringa esadecimale - ogni due cifre diventa un byte . Ma sì, probabilmente memorizzare una stringa è più facile. –