Ho una API che ho progettato che può restituire i dati in 2 diverse unità. Per spiegare questo sto tendendo a usare l'esempio di una misurazione, in particolare la temperatura. Tuttavia, il mio caso d'uso è leggermente più complesso, rappresentando un albero di valori con valori percentuali su ciascun livello, sia che lo si mostri in relazione al genitore, sia in cima all'albero.
Sto cercando come accettare un valore e un'unità per quei dati. Ad esempio, la mia API restituisce un sacco di temperature:
GET:{
temperature_c: 20,
temperature_f: 68
}
Ora diciamo che voglio impostare una temperatura, mi aspetterei solo di ricevere una temperatura in quanto non voglio costringere il consumatore a calcolare un valore che non conosce / cura.
Ma c'è qualche modo REST raccomandato per fare questo? Ho pensato di utilizzare un parametro di query:
PUT?unit=c:{
temperature: 20
}
O per aggiungere un campo di unità nel corpo:
PUT:{
temperature: 20,
unit: c
}
Oppure, quello che sento è peggio, costringendo un consumatore a uno dei tipi:
PUT:{
temperature_c: 20
}
Esiste un modo standard per affrontare questo problema? O qualche inconveniente significativo? O forse c'è un altro metodo che mi manca?
Modifica: Per informazioni sulla mia destinazione d'uso prevista, ho in programma di rappresentare una struttura ad albero che espone i pesi in due forme 'to top' e 'to parent'. To Top è il peso complessivo del nodo, in% dell'intero albero. To Parent è il peso del nodo, in% rispetto al suo genitore immediato. Ad esempio, immagina questa struttura ad albero e i pesi:
-- Nodes To Top To Parent
Root node 100 100
Node 1.1 80 80
Node 1.1.1 60 75
Node 1.1.2 20 25
Node 1.2 20 20
Node 1.2.1 10 50
Node 1.2.2 10 50
Posso facilmente convertirli tra di loro, tuttavia, se un consumatore ha manipolato To Parent, ad esempio, ritengo che non dovrebbero anche calcolare i pesi To Top prima di fare un PUT / POST.