Sto scrivendo un'applicazione client che riceve una risposta JSON da un server. In passato mi sono imbattuto in situazioni in cui uno sviluppatore sul lato server modifica la risposta JSON in un modo che causa l'arresto anomalo dell'applicazione client. Un esempio di ciò è quando il client si aspetta che un campo JSON o subobject sia sempre presente, ma una modifica sul lato server fa sì che il JSON si discosti da ciò che si prevede possa restituire un valore nullo quando null non dovrebbe mai essere una possibile risposta.
Sembra che il lato server possa sempre disporre di test unitari che assicurino che la risposta JSON soddisfi il contratto, ma è suscettibile di errore umano se uno sviluppatore decide di riscrivere un test o semplicemente commette un errore nel test o fraintende un requisito. Il lato client può verificare che la risposta JSON sia valida, ma ciò dovrebbe essere necessario in fase di esecuzione e se il server sta scrivendo test appropriati, il doppio controllo della risposta del server da parte del client non sarebbe necessario.
Esiste un processo consigliato per garantire che il contratto (formato di risposta JSON) tra client e server non venga danneggiato?