我们有一个要求...当我们收到对控制器的请求时,我们将调用另一个api,并基于另一个api响应,我们必须使用不同的参数将请求重新触发至控制器
@RequestMapping(value = "/search", method = RequestMethod.GET, produces = "application/json")
public Map<String, Account> searchEndpoint(@RequestParam(name = "query", required = true) String query) {
RequestPayload req = new RequestPayload(query);
SearchResponse searchResponse = http.executeSecurePost(this.searchUrl, req, SearchResponse.class);
if(("particularModel").equalsIgnoreCase(searchResponse.getModel()))
{
String differentQueryParameter = searchResponse.getName();
searchEndpoint(differentQueryParameter);
}
else {
//do something else
}
return json response;
}
当我这样做时...在第二次调用并获得新的响应并返回时工作正常...但是再次触发了第三次查询,这一次是原始查询被触发。 不知道为什么触发第三个查询。 任何帮助将不胜感激。
一次又一次地调用您的处理程序,这可能会导致递归函数。 您可以避免这种编程。您可以将调用api的逻辑放在service方法中并执行该操作。
@RequestMapping(value = "/search", method = RequestMethod.GET, produces = "application/json")public Map<String, Account> searchEndpoint(@RequestParam(name = "query", required = true) String query) {
//put this logic in service
RequestPayload req = new RequestPayload(query);
SearchResponse searchResponse = http.executeSecurePost(this.searchUrl, req, SearchResponse.class);
if(("particularModel").equalsIgnoreCase(searchResponse.getModel()))
{
String differentQueryParameter = searchResponse.getName();
//put this logic in service and just call it
RequestPayload req = new RequestPayload(query);
SearchResponse searchResponse = http.executeSecurePost(this.searchUrl, req, SearchResponse.class)
}
else {
//do something else
}
return json response;
}