Sto cercando il principio della migliore pratica qui. Come parte del mio REST Api, sto restituendo alcune informazioni di base per un utente. Diciamo che l'utente può essere un "proprietario" di un'azienda, nel qual caso hanno pieno accesso a tutte le risorse dell'azienda. Oppure avrebbero potuto ottenere l'accesso delegato a determinate parti dell'azienda. Ora ho queste due scelte di JSON da restituire
se l'utente è un proprietario ...
{
companyId : "123",
companyName: "Acme",
isOwner: true,
delegatedAuthority : null
}
se l'utente ha delegato l'accesso a determinate risorse dell'azienda ...
{
companyId : "123",
companyName: "Acme",
isOwner: false,
delegatedAuthority :
{
// An object that provides all the details about the delegation.
}
}
Ovviamente, da una implementazione perspecitiva, farei qualcosa di semplice come impostare isOwner = delegatedAuthority == null
dietro le quinte.
Ma dovrei anche restituire la bandiera? Da una prospettiva esplorativa o descrittiva, sembra una cosa carina da restituire. Potrebbe essere utile per qualcuno che costruisce un consumatore che potrebbe non avere familiarità con l'API o il dominio. Ma per qualcuno che abbia familiarità con l'API / dominio, sembra che potrei violare DRY e restituire informazioni ridondanti. Si sentirebbero ora costretti a scrivere codice di controllo degli errori per assicurarmi di non mentire a loro e restituire sia isOwner = true
che delegatedAuthority != null
Quali sono i principi da prendere in considerazione e da valutare?