我正在开发一个处理大量传入请求调用的 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 地址吗?
任何帮助表示赞赏。
原文由 Ricky 发布,翻译遵循 CC BY-SA 4.0 许可协议
你在 Spring 中没有那个组件。