REST API GET请求可返回的最大行数是多少?返回记录数不足问题
解决方案
GET 协议本身不存在返回行数的默认限制,你遇到的2000条数据截断问题由技术栈某环节的默认限制导致,按以下优先级排查即可:
- 后端查询逻辑限制:优先排查 Spring Boot 持久层的分页配置,大部分 JPA、MyBatis 或分页插件(如 PageHelper)的默认分页大小为2000。先直接在 Postgres 中执行业务对应的查询SQL,确认能返回3357条完整记录,再打印后端接口查询到的结果集长度:如果后端本身仅返回2000条,修改对应分页配置的默认最大条数即可。
- Postgres JDBC 驱动限制:Postgres 官方JDBC驱动默认
fetchSize为0,即一次性返回全量结果,若你手动配置了fetchSize或连接池参数中配置了返回行数限制,也会导致结果截断,可核对数据库连接池的配置项。 - Spring Boot 内嵌容器响应限制:Tomcat、Undertow等内嵌容器默认会对响应体大小做限制,但触发该限制时一般会抛出异常,不会静默截断为2000条,可作为次优先级排查项,打印后端接口返回的完整列表长度即可确认是否是该环节问题。
- 前端解析逻辑限制:先通过你当前的请求代码打印返回结果长度:
在请求回调中打印return this.http.get<IFileMetadata[]>(this.resourceUrl, { params: options, observe: 'response' });response.body?.length,如果后端返回长度为3357、前端拿到的长度为2000,排查前端是否有写死的截断、过滤逻辑,或IFileMetadata反序列化逻辑是否存在异常导致部分数据丢失。
内容的提问来源于stack exchange,提问作者cluis92
相关产品推荐
相关产品推荐

