Qual è il modo migliore per convalidare i seguenti dati?

4

Diciamo che ricevo una richiesta xml che viene inviata al mio servizio web e questa richiesta contiene alcuni dati in esso come coppie camera / tariffa hotel (camera = doppia regina, tariffa = 10%). Il database ha tutte queste coppie Room / Rate memorizzate, quindi quando arriva la richiesta xml, devo convalidarle per vedere se la richiesta contiene sia la room che la rate nel database. Se ricevo una coppia camera / tasso e non è nel database, non riesco a inviare il messaggio e rispedisco una risposta di errore, ma se ricevo 3 coppie camera / tasso per esempio, e 2 sono trovati nel database, ma uno è no, vorrei elaborare quelli succussfull e inviare indietro avvisi per quelli che non sono stati trovati. L'altro scenario è se ricevo 3 room / rate pair e non vengono tutti trovati nel database, quindi voglio inviare un messaggio di errore. Qual è il modo migliore per affrontare questi scenari?

    
posta Xaisoft 06.09.2011 - 16:10
fonte

2 risposte

6

La mia opinione è che dovresti essere coerente e seguire sempre lo stesso percorso indipendentemente dal numero di dati che hai nella richiesta. In questo modo il client della tua applicazione sa cosa aspettarsi. In quanto tale, essere coerenti ti lascia solo con due scelte:

  • strict : sei molto severo e nulla passa se hai un errore (come, questa è una transazione). Ti fermi al primo errore e restituisci la risposta spiegando dove trovi il primo errore.
  • permissivo : le sale valide vengono aggiornate correttamente. Per ogni stanza che non hai nel tuo database, generi un avviso e continua. La risposta conterrà un avviso per ogni dato problematico.

Da quello che ho capito, non sembra che tu richieda la tua richiesta di essere transazionale (tutto passa, o niente), quindi la mia ipotesi è che tu possa essere "permissivo". Il cliente dovrebbe controllare gli avvertimenti e fare tutto il possibile per fare meglio la prossima volta.

C'è anche una terza scelta, ma non so se è possibile implementarla nel tuo dominio aziendale: perché non "creare" le stanze mancanti nel database se non le hai?

    
risposta data 06.09.2011 - 16:25
fonte
3

Quello che probabilmente vorrai fare è incorporare il successo / insuccesso in ogni richiesta nella tua risposta. Quindi, nel tuo esempio, l'utente riceverà una risposta dicendo che i primi 2 hanno avuto esito positivo e l'ultimo non è riuscito. Punti bonus per includere perché ha fallito.

    
risposta data 06.09.2011 - 16:41
fonte

Leggi altre domande sui tag