Sto guardando uno scenario API in cui hai un'entità, come una telefonata, che puoi interrompere una volta e iniziare una volta. Stavo pensando di modellare questo come qualcosa del tipo:
{
start_time: null | date,
end_time: null | date
}
Tuttavia, non voglio che il client sia effettivamente in grado di impostare liberamente questi campi. Piuttosto, voglio che siano in grado di inviare una richiesta a questa risorsa per avviarla, per cui il server imposta l'ora corrente in base al proprio orologio, e quindi per inviare una richiesta alla fine, per cui il server fa la stessa cosa per il campo end_time.
Che mi ha portato a chiedermi, esiste una convenzione API che specifica le variabili che possono essere utilizzate in richiesta? Ad esempio, potrei prevedere una API che specifica che una variabile denominata "$ now" rappresenta l'ora corrente in base all'API. Con questo sistema, se al 2017-03-06T01: 55: 42 + 00: 00 (dall'orologio del server) invii ...
PUT /call/1/
{
start_time: "$now",
end_time: null
}
... vedresti, in una successiva richiesta di ottenere:
GET /call/1/
{
start_time: "2017-03-06T01:55:42+00:00",
end_time: null
}
Qualcuno sa di una convenzione per specificare cose come questa - in particolare, per delineare quali variabili di questo tipo sono disponibili per il cliente e cosa significano? E 'un buon modo per fare le cose in una risorsa (non dirò RESTful, perché non hypermedia)?