web-dev-qa-db-ja.com

Pythonを使用してGithub GraphQL APIを使用する方法

Github GraphQl v4 APIを使用してGithubから詳細にアクセスしたい。 Graphene ライブラリを見つけましたが、Pythonで個人用アクセストークンを使用して認証する方法がわかりません。
Googleで検索しようとしましたが、例が見つかりませんでした。それはPythonグラフィカルスキーマを作成でき、それらを消費するためのものではないライブラリです。私は「リクエスト」で試してみましたが失敗しました。どのように認証してリポジトリのリストを見つけることができますか?

私はGithub GraphQl Explorerを使用して、次のコードでリポジトリのリストを見つけました:

viewer {
repositories(first: 30) {
  totalCount
  pageInfo {
    hasNextPage
    endCursor
  }
  edges {
    node {
      name
    }
  }
}
11
Vaibhav Singh

残りとは異なり、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)
13
sreenivas

グラフェンは、それらを使用するためではなく、GraphQL APIを構築するためのものです。

ご覧になりましたか: https://github.com/graphql-python/gql

Python用のGraphQLクライアントです。

お役に立てば幸いです。

3
Yasss

以前の回答で述べたように、GraphQLの呼び出しはクエリ文字列を使用してPOSTリクエストを作成するのと同じくらい簡単です。ただし、Python3を使用している場合は、ビルド中にクエリを検証するより高度なものが必要です新しいGQLライブラリをチェックアウトするために、型付きのデータクラス応答クラスを生成します。 https://github.com/ekampf/gql

0
Eran Kampf