この記事の目的
「GraphQLを試してみたい!&実際に何か作ってみたい!」という方に、Google Apps Scriptという環境でGithub APIv4(GraphQL)を試す最小限のコードを紹介することです。
GraphQLの特徴
次世代のAPI用クエリ言語、「GraphQL」を使って、GithubのAPIを叩いてみました!
GraphQLはFacebookが開発した、RESTに次ぐクエリの方式です。
初めはFacebook社内でのみ使われていましたが、その利便性ゆえにOSSとして公開されたとのこと。
使う側の視点から、端的にRESTとの大きな違いを書くと以下のようになります。
- 必要な情報を一度のクエリで取得できる
- エンドポイントが一つで済む
早速使ってみましょう!
Google Apps Scriptで試してみよう!
function fetchUserName() {
// どのようなGraphQLのクエリを書いても、エンドポイントは固定でOKです
const url = 'https://api.github.com/graphql';
const token = '取得したTokenを記入してください';
// GraphQLのクエリを作成
const graphql =
'{ \
viewer { \
login\
}\
}';
const options = {
'method' : 'post',
'contentType' : 'application/json',
'headers' : {
'Authorization' : 'Bearer ' + token
},
'payload' : JSON.stringify({ query : graphql })
};
const response = UrlFetchApp.fetch(url, options);
const json = JSON.parse(response.getContentText());
Logger.log(json);
}
(Githubのトークン取得の方法はこちらの記事をご参照ください。
GitHub「Personal access tokens」の設定方法)
コードはAPIを叩いて、自分のログイン名を取得するシンプルなものです!
これを実行した結果は以下の通りです。
(ログイン名は伏せてます(笑))
GraphQLを書いてみて、GAS上で返ってきたJSONをいじることで面白いことができそうです!
Github APIv4(ちなみに、v3はREST方式)のGraphQLは開発者向けの公式サイトから試すことができます。
このサイトでGithub上の欲しいデータを取得するGraphQLがかけたら、コード内の変数graphqlに代入することでGoogle Apps Scriptですぐに使うことができます。
次回はGraphQlを使って取得したデータを加工して、Slackに連携しようと思います!