Ho il seguente frammento di codice per invocare la chiamata di riposo. Ho circa 8 intestazioni da trasmettere per questa chiamata di riposo. Ma il problema è che è difficile da gestire. Se nel futuro l'elenco delle intestazioni viene aumentato, devo modificare la firma del metodo evaluateChange
per includere le intestazioni aggiuntive come metodo params
.REST Chiama con l'elenco delle intestazioni
@Path("/v1/restclienturi/")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public interface RestClient {
@POST
@Path("/samplecall/evaluate")
Response evaluateChange(
@HeaderParam("HEADER1") String header1,
@HeaderParam("HEADER2") String header2,
@HeaderParam("HEADER3") String header3,
@HeaderParam("HEADER4") String header4,
@HeaderParam("HEADER5") String header5,
@HeaderParam("HEADER6") String header6,
@HeaderParam("HEADER7") String header7,
@HeaderParam("HEADER8") String header8,
@Context HttpServletResponse response, Request request);
}
Si prega di fornire i vostri pensieri o snippet di codice per sistemare questo.
Ho provato il seguente frammento di codice, ma non ha funzionato (dove headerMap contiene tutti gli 8 intestazioni in esso):
@Path("/v1/restclienturi/")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public interface RestClient {
@POST
@Path("/samplecall/evaluate")
Response evaluateChange(
@RequestHeader Map<String, String> headerMap,
@Context HttpServletResponse response, Request request);
}
Hai già selezionato la tua risposta come risposta corretta, hai ancora bisogno di aiuto o no? Sembra in ogni caso che tu stia cercando di implementare qualcosa come una fabbrica. Potresti implementare direttamente lo schema di fabbrica come definito nella teoria. – Rafa
@Rafa: ho trovato la soluzione ma ha ancora un problema come affermato. L'implementazione della fabbrica o qualsiasi altro modello di progettazione non risolve il problema (poiché il servizio REST non accetta le intestazioni quando viene utilizzato un modello di fabbrica). – Arun
@Arun Ho una nuova soluzione per creare intestazioni multiple secondo le tue necessità. per favore controlla [qui] (http://stackoverflow.com/a/35581805/5678086) – Thanga