Здравей,
Наистина вече сме свикнали информацията за типа на грешката да се съдържа в HTTP статус кода, но спокойно може да се направи система, която слага тази грешка в поле от body-то на резултата, хедърите, кукитата или на друго място, а не в статус кода. За комуникацията между два сървиса това в коя точно част от response ще се съдържа тази информация, е все едно. Но повечето готови java http клиенти ще трябва да се надграждат, вместо да се използват "чисти". Например, нека вземем сървис А, който ще прави заявка към такъв друг сървис B, като сървис B винаги връща http status code 200, а ако има грешка, тя е в json body-то на response. Може ли сървис A да разбере, когато сървис B му върне някаква грешка и да прецени каква точно е тя? Може. Дотук супер. Но, например, повечето http java клиенти при върнат http response code 404 ще хвърлят някакъв вид NotFoundException. Може ли да се направи това в ситуацията с нашите два сървиса А и B? Може, но трябва да се напише и изкомуникира между екипите, поддържащи A и B, докато иначе всичко би било ясно по подразбиране. Нещо от сорта на (псевдокод) class MyHttpClient extends HttpClient{ .... if (response.getBody().get('errorCode') == 404) throw new NotFoundException. В крайна сметка резултатът е абсолютно същият, но ще трябва малко работа отгоре.
След като си поставен в ситуация, в която трябва да се адаптираш, може би трябва да започнеш с нещо такова. Много е вероятно и да измислиш по-добър вариант с по-малко работа. Успех!
Поздрави, М. Георгиев