GitHub API按仓库名称过滤结果不符,如何正确实现?
正确通过GitHub API过滤指定用户的仓库名称
你当前使用的/users/realtril/repos接口是用来获取该用户所有公开仓库的,这个接口不支持q参数做关键词过滤,所以返回的是该用户全部53个仓库,和预期结果不符。
要实现和网页端搜索一致的效果,得用GitHub的仓库搜索API,具体操作如下:
- 更换接口地址为搜索专用接口:
https://api.github.com/search/repos - 在
q参数中组合两个过滤条件:goit-js:搜索关键词(默认匹配仓库名、描述、README等内容;若要严格只匹配仓库名,可改用name:goit-js)user:realtril:限定仅搜索realtril用户名下的仓库
正确请求代码示例
const ghReq = await fetch( 'https://api.github.com/search/repos?q=goit-js+user:realtril&per_page=100' ); const ghData = await ghReq.json(); // 符合条件的仓库结果在items数组中 console.log(ghData.items);
如果需要精准匹配仓库名称包含goit-js的仓库,只需将q参数修改为name:goit-js+user:realtril,返回结果就会和网页端精准搜索仓库名的结果完全一致。
内容的提问来源于stack exchange,提问作者AlexUA
相关产品推荐
相关产品推荐

