我正在开发一个处理大量传入请求调用的Spring Boot Rest API。我的控制器如下所示:
@RestController public class ApiController { List<ApiObject> apiDataList; @RequestMapping(value="/data",produces={MediaType.APPLICATION_JSON_VALUE},method=RequestMethod.GET) public ResponseEntity<List<ApiObject>> getData(){ List<ApiObject> apiDataList=getApiData(); return new ResponseEntity<List<ApiObject>>(apiDataList,HttpStatus.OK); } @ResponseBody @Async public List<ApiObject> getApiData(){ List<ApiObject> apiDataList3=new List<ApiObject> (); //do the processing return apiDataList3; } }
所以现在我想为每个用户设置一个速率限制。假设每个用户每分钟只能请求5个请求或类似的请求。如何为每个用户设置速率限制,使其每分钟只能进行5次api调用,并且如果用户请求的请求更多,我可以发送回429响应?我们需要IP地址吗?
任何帮助表示赞赏。
Spring中没有该组件。