Come risolvere il problema con vari formati di dati (XML, JSON, SOAP) per lo scambio di dati?

4

Supportiamo lo scambio di dati in JSON, XML e SOAP per i nostri clienti. La vista a volo d'uccello del flusso di dati sarebbe come questa

  • Il partner 1 invia la richiesta di alcuni dati con dati XML
  • Il partner 2 invia la richiesta con JSON
  • Il partner 3 invia la richiesta con SOAP

Per avere un approccio generale per tutti i partner. Abbiamo creato un file per ogni partner in cui definiamo i parametri del partner e i nostri parametri corrispondenti.

Dopo aver ottenuto i dati richiesti elaboriamo i dati e generiamo una risposta. Questa risposta deve essere inviata nuovamente ai partner nei rispettivi formati. Per questo, abbiamo modelli in cui semplicemente inseriamo i dati di risposta nel modello e li abbiamo inviati al partner.

Come risolvete normalmente questo problema?

Su cosa sto lavorando? Sto creando un parser generico che trasforma la richiesta dei partner nel nostro formato richiesto con l'aiuto del file che abbiamo con i parametri.

    
posta Vamsidhar 11.03.2017 - 08:58
fonte

1 risposta

4

Usi un approccio molto valido, ma la tua domanda è abbastanza ampia: ci sono molti modi per gestirla. La risposta giusta dipenderà molto dalla tua architettura esistente.

La mia prima ipotesi sarebbe:

  • utilizza un modello di strategia per l'analisi dipendente dal formato;
  • usa di nuovo una strategia per generare la risposta (se l'approccio modello non è più sufficiente)
  • se necessario, inserisci un selettore di formato nella richiesta di output del parser per tenere traccia del formato di output da utilizzare per inviare la risposta.

Se un parser ad hoc non è sufficiente, è possibile utilizzare parser out of the box e gestire i diversi eventi di analisi in un modo per creare un oggetto di richiesta indipendente di formato omogeneo (cioè le richieste potrebbero essere implementate usando schema di comando , che quando eseguito eseguirà la richiesta e produrrà la risposta).

P.S: Capisco che il tuo sistema esegua un qualche tipo di elaborazione transazionale e che l'analisi sia più basata sull'ottenere parametri / argomenti della transazione piuttosto che elaborare l'analisi di richieste complesse. Questo è il motivo per cui non ho suggerito il modello di interprete .

    
risposta data 11.03.2017 - 10:11
fonte

Leggi altre domande sui tag