rest api: issue links(解决性能浪费)
目前 issue list/single api 都不包括「关联」数据
https://docs.gitlab.com/ee/api/issues.html#list-issues
我们的 web 是先获取 issue,再调用 issue relations 接口,产生 2 倍的性能消耗,白白浪费。
如果是开发者使用,先调用了 issue list api,再循环调用每个 issue 的 relations 接口,产生 10 倍的性能消耗,更加严重。
https://docs.gitlab.com/ee/api/issue_links.html#list-issue-relations
建议:
- 在 issue list/single api 中增加 links_count 字段,来自
issue_links
table 关联查询。如果为 0,则前端不需要再调用 issue relations 接口,节约了性能。 - 所有 api 统一添加 fileds 参数,默认不查询这种关联表的字段,让用户显式指定需要哪些字段,然后在 issue list/single api 中增加 links 字段,供用户指定。参考 twitter api 的设计: https://developer.twitter.com/en/docs/twitter-api/fields
由 Zhou YANG 编辑于