...
I exemplet ovan knyts även en generisk ErrorDecoder in i Feign-klienten [3]
. Detta är allt som krävs för att klienten skall kunna hantera error-response av Problem-typ (läs mer i befintlig RFC).
Utifrån ovan kan sedan klienten autowire @Autowire
:as in som en vanlig Spring-komponent där den behövs:
...
Konfiguration som krävs när back-end anropad tjänst implementerat RFC-7807:
Code Block | ||
---|---|---|
| ||
@Import(FeignConfiguration.class) class GithubClientConfiguration { @Bean ErrorDecoder errorDecoder() { return new GenericJsonErrorDecoder("GithubClient"); } } |
Konfiguration för fel som avviker från standard. Genom att ange sökvägen via JSON-path till den data vi vill mappa kan vi hantera vilka strukturer på felmeddelandet som helst. Se exempel nedan:
Error-response:
Code Block | ||
---|---|---|
| ||
{ "errorMessage": "This is aan customexample error", "extraInfo": { "details": "This is example details", "status": "500" } } |
...