Github GraphQl v4 APIを使用してGithubから詳細にアクセスしたい。 Graphene ライブラリを見つけましたが、Pythonで個人用アクセストークンを使用して認証する方法がわかりません。
Googleで検索しようとしましたが、例が見つかりませんでした。それはPythonグラフィカルスキーマを作成でき、それらを消費するためのものではないライブラリです。私は「リクエスト」で試してみましたが失敗しました。どのように認証してリポジトリのリストを見つけることができますか?
私はGithub GraphQl Explorerを使用して、次のコードでリポジトリのリストを見つけました:
viewer {
repositories(first: 30) {
totalCount
pageInfo {
hasNextPage
endCursor
}
edges {
node {
name
}
}
}
残りとは異なり、graphqlにはエンドポイントが1つしかありません。クエリでjsonオブジェクトとしてPOST
を実行するだけです。 api_token
ヘッダーの一部として github から取得します。
import requests
url = 'https://api.github.com/graphql'
json = { 'query' : '{ viewer { repositories(first: 30) { totalCount pageInfo { hasNextPage endCursor } edges { node { name } } } } }' }
api_token = "your api token here..."
headers = {'Authorization': 'token %s' % api_token}
r = requests.post(url=url, json=json, headers=headers)
print (r.text)
グラフェンは、それらを使用するためではなく、GraphQL APIを構築するためのものです。
ご覧になりましたか: https://github.com/graphql-python/gql ?
Python用のGraphQLクライアントです。
お役に立てば幸いです。
以前の回答で述べたように、GraphQLの呼び出しはクエリ文字列を使用してPOSTリクエストを作成するのと同じくらい簡単です。ただし、Python3を使用している場合は、ビルド中にクエリを検証するより高度なものが必要です新しいGQLライブラリをチェックアウトするために、型付きのデータクラス応答クラスを生成します。 https://github.com/ekampf/gql