我正在尝试使用github graph api发出请求并仅获取我需要的详细信息,即。一些公共仓库中的星星数量。一个未经身份验证的请求,可以使用V3(REST)api获取有关回购协议的详细信息,效果很好,但是它包含了我不需要的百万个回购协议的详细信息,我只需要回购协议上的星星数即可。
当我发出以下请求时:
query {
repository(owner: "facebook", name: "react") {
stargazers {
totalCount
}
}
}
在使用fetch
的javascript中,它会响应401 Unauthorized
fetch('https://api.github.com/graphql', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query: '{ repository(owner: "facebook", name: "react") { stargazers(last: 10) { totalCount } } }' })
})
.then(res => res.json())
.then(res => console.log(res));
我需要在公共网站上显示数据,因此我无法使用github帐户中的令牌进行身份验证。
有没有某种方法可以在不进行身份验证的情况下发出请求,也许有一些解决方法。还是不可能?
答案 0 :(得分:1)
如果您最终需要每小时发出超过 5,000 个请求,那么您可以创建一个 OAuth Github App,并让每个用户使用自己的密钥从他们自己的浏览器发出请求。
答案 1 :(得分:0)
GitHub GraphQL API需要进行身份验证才能发出请求。
您可以进行等效的REST API调用并丢弃不需要的信息,或者让服务器端代码使用适当的API令牌发出请求并将该信息代理到您的前端代码。
请注意,如果您希望您的应用程序向GitHub API发出大量的总请求,则可能需要采用后者,并实现缓存。