Quindi immagina, ho un endpoint in cui è possibile effettuare il pagamento dell'abbonamento a una rivista.
Potrebbero esserci diversi tipi di abbonamento. ad es. settimanale, quindicinale, annuale, 5 anni ecc.
Per ciascuna sottoscrizione, la richiesta JSON per l'endpoint della sottoscrizione varia in modi leggermente diversi. Ad esempio, forse con l'abbonamento di 5 anni, potresti voler chiedere l'indirizzo di residenza, ma per l'abbonamento settimanale, forse non ti interessa. Pertanto, la convalida (e anche la logica aziendale) differisce leggermente in base al tipo di abbonamento.
La domanda è, che è il modo preferito per modellare gli endpoint:
- Hai un unico endpoint:
/subscription
nel JSON che viene inviato, hai una proprietà discriminante. Questo è: %codice% In modo che nell'implementazione di{ name: "Joe", Age: 66, subscription_type: "weekly | monthly | fortnight | yearly | etc" }
sia presente un codice che esegue una convalida diversa alla richiesta JSON ed esegue una logica di business diversa in base al valore di/subscription
- Avere endpoint separati per i diversi tipi di abbonamento. Ad esempio:
subscription_type
,/subscription/weekly
ecc. E l'implementazione di ciascuno di questi endpoint riguarda solo la convalida e la logica di business specifiche per il loro tipo di abbonamento.
Qualche altra opzione possibile oltre a questi due che ho menzionato? C'è qualche buona pratica per trattare questo tipo di scenario?