Sto lavorando alla creazione di un'interfaccia API su un'architettura basata su domini.
Il livello dominio ha un gruppo di specifiche classi di eccezioni (cioè NameIsRequiredException
, CannotPublishDraftException
, ecc.) che vengono generate.
Vogliamo un approccio per gestire in modo pulito questi diversi tipi di errori senza un intero gruppo di blocchi try / catch nei nostri controller.
Abbiamo pensato di utilizzare potenzialmente il nome del campo nel livello dominio nella risposta API (ad esempio un'eccezione FieldRequired
personalizzata che ha una proprietà nome campo). Tuttavia, questo non funziona poiché non esponiamo tutti i campi nella nostra API, oppure i nomi dei campi API potrebbero non corrispondere ai nomi del campo nel livello dominio (ad esempio description
vs desc
) - in più siamo accoppiando i nomi dei campi nella nostra API ai nomi dei campi nel nostro modello di dominio.
Un altro approccio prevedeva l'utilizzo di gestori di eccezioni personalizzate (in primavera) per restituire errori specifici per ogni possibile eccezione (che probabilmente ci imporrebbe di avere eccezioni molto specifiche nel nostro livello dominio). Questo approccio probabilmente funzionerà, ma sembra che potrebbe avere problemi di prestazioni generali o di sovraccarico.
Ti stai chiedendo se esistessero altre strategie per gestire questa situazione.