web-dev-qa-db-ja.com

curlを使用してgithub graphql APIにアクセスする方法

これを参照した後 ガイド テスト目的でgraphqlを使用してgithub curlにアクセスする必要がありました。私はこの簡単なコマンドを試しました

curl -i -H "Authorization: bearer myGithubAccessToken" -X POST -d '{"query": "query {repository(owner: "wso2", name: "product-is") {description}}"}' https://api.github.com/graphql

しかし、それは私に与えます

jSONの解析に関する問題

私が間違っていること。私はそれを理解するために2時間近く費やし、さまざまな例を試しましたが、どれもうまくいきませんでした。これを解決するのに十分親切にしていただけますか

15

JSON内にある二重引用符をクエリとしてエスケープする必要があるだけです

$ curl -i -H 'Content-Type: application/json' -H "Authorization: bearer myGithubAccessToken" -X POST -d '{"query": "query {repository(owner: \"wso2\", name: \"product-is\") {description}}"}' https://api.github.com/graphql

14
Yuri Schimke

クエリをナイスでマルチラインに保つには、次のようにします。

script='query {
  repositoryOwner(login:\"danbst\") {
    repositories(first: 100) {
      edges {
        node {
          nameWithOwner
          pullRequests(last: 100, states: OPEN) {
            edges {
              node {
                title
                url
                author {
                  login
                }
                labels(first: 20) {
                  edges {
                    node {
                      name
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}'
script="$(echo $script)"   # the query should be onliner, without newlines

curl -i -H 'Content-Type: application/json' \
   -H "Authorization: bearer ........." \
   -X POST -d "{ \"query\": \"$script\"}" https://api.github.com/graphql
4
danbst