Sto scrivendo una piccola applicazione basata su microservizi. A uno dei servizi viene assegnata l'attività di interrogare un'API esterna ed elaborare la risposta JSON (elenco filtrato di case). Dato che sto utilizzando i protocol buffer per serializzare il messaggio che verrà inviato al broker dei messaggi, devo convertire l'output JSON nel formato del protocollo di protocollo appropriato.
Questo è un diagramma che illustra l'architettura generale:
Il problema è che, dal momento che la risposta JSON è lunga, impaginata e ha molti campi nidificati, non esiste un modo semplice per creare manualmente una struttura di messaggio ProtoBuff corrispondente.
Potrei potenzialmente inviare la risposta JSON come stringa di testo e gestirla sul lato del servizio del database, ma questo presenta il problema di come memorizzare ogni oggetto house nel database in modo che possa essere interrogato in seguito.
Unmarshalling dell'intera risposta in una struttura di Go pone gli stessi problemi che si provano nel creare una struttura di messaggi ProtoBuff in primo luogo. Archiviarlo in un database come campo JSON non è un'opzione, poiché è necessario poter interrogare alcuni campi ed estrarre effettivamente ogni descrizione della casa dal corpo della risposta.
Inoltre, la creazione di uno schema di database che corrisponda a centinaia di campi e oggetti nidificati diversi sembra un modo molto noioso per affrontarlo.
Quali sono le migliori pratiche quando si tratta di elaborare un notevole output JSON su molti servizi Web?