Si sta ripetendo un identificatore su una richiesta API e la risposta ha considerato un odore di codice

7

È strano avere un identificatore come (_id) su una richiesta che invii all'API, che "arricchisce" la richiesta e invia una risposta con lo stesso identificatore (ma ovviamente dati più arricchiti)?

Ad esempio: invii la richiesta {_id: 1111} e ricevi una risposta {_id: 1111, occorrenza: nuova, ecc.}

Il motivo per cui ritengo che sia un po 'strano è che essenzialmente sto inviando e ricevendo lo stesso campo, quindi il mio cervello dice che è un odore di codice, ma quando lo guardo logicamente ha senso dato che sto inviando qualcosa che ha bisogno essere arricchito (fare alcuni calcoli basati sull'identificatore) e il motivo per cui ho un identificatore sulla risposta è che posso abbinare i risultati sul front-end.

Speriamo che questo abbia un senso e se voi ragazzi avete bisogno di maggiori dettagli, per favore fatemelo sapere e io li aggiungerò.

Grazie a tutti!

    
posta AvetisG 08.11.2016 - 17:16
fonte

2 risposte

5

Questo è ok. Considera quando chiedi "dimmi tutto sulla registrazione X". Bene, tutto sulla registrazione X, include il suo ID. Sembrerebbe un po 'strano chiedere tutto per un record e NON recuperare il suo ID. Generalmente preferisco ritirare questi dati nonostante il lieve sovraccarico aggiuntivo.

Nel caso in cui non sia necessario tutto, ed è solo un sottoinsieme o un calcolo basato sui dati, è ancora preferibile la pratica IMO. La tua risposta è più completa. L'ID serve come controllo e può essere utilizzato per programmare in modo difensivo.

È come chiedere a qualcuno una domanda. "Cosa sono 2 + 2". Quando rispondono solo a 4, come fai a sapere che stanno rispondendo alla tua domanda o stanno rispondendo alla domanda di qualcun altro attraverso la cuffia bluetooth? Se rispondono "2 + 2 = 4", allora hai un controllo integrato sull'integrità della tua risposta.

La domanda è in realtà in che misura vuoi rendere i tuoi messaggi dipendenti dal loro contesto operativo. Se hanno un ID, sono meno dipendenti dal loro contesto operativo. Ciò significa che sono meno strettamente accoppiati, il che è generalmente una buona pratica.

    
risposta data 08.11.2016 - 17:36
fonte
3

Non è strettamente necessario con una richiesta sincrona. Ha un costo davvero basso e può essere utile per la risoluzione dei problemi. Può aiutarti a legare le transazioni tra i vari sistemi. Se non ne viene fornito uno, consiglierei di generarne uno (ad esempio un UUID) e restituirlo per gli stessi motivi.

    
risposta data 08.11.2016 - 17:25
fonte

Leggi altre domande sui tag