GiitHub GraphiQL API로 한 번에 모든 정보 얻기
3509 단어 GitHubAPI
계기.
GiitHub에서 임의의 정보를 추출할 때 스크립트를 만들어 REST API를 여러 차례 수행했지만 GraphiQL API는 간단하게 원하는 정보를 얻을 수 있기 때문에 실제로 접한 내용을 적는다.
이번에는 이런 느낌을 잡아서 쓸 수 있을까 하는 생각으로 써보는 중심으로 진행됐다.
GraphiQL API 사용 방법
GiitHub GraphiQL API는 Explorer를 통해 간단히 수행할 수 있습니다.
https://developer.github.com/v4/explorer/
화면은 이렇다. 왼쪽에 실행하고 싶은 GraphiQL을 기입하고 실행하기만 하면 된다.
시험해 보다
이번에 나는 자신의 프로젝트 관련 팀에서 열람할 수 있는 창고 일람표를 얻는 것에 대한 조회를 썼다.
query {
organization(login: "組織のアカウント名"){
name,
login,
teams(query: "検索ワード",first: 100){
totalCount,
edges{
node{
name,
repositories(first: 100){
totalCount,
edges{
node{
nameWithOwner
}
}
}
}
}
}
}
}
이 작업을 수행하면 이러한 데이터가 반환됩니다.{
"data": {
"organization": {
"name": "組織名",
"login": "組織のアカウント名",
"teams": {
"totalCount": 9,
"edges": [
{
"node": {
"name": "チーム名",
"repositories": {
"totalCount": 32,
"edges": [
{
"node": {
"nameWithOwner": "所有者/リポジトリ名"
}
},
{
"node": {
"nameWithOwner": "所有者/リポジトリ名"
}
}
・
(長いので省略)
・
]
}
}
},
・
(長いので省略)
・
]
}
}
}
}
이런 식으로 원하는 정보만 간단하게 얻을 수 있다.그나저나 또 어떤 커넥션과 Field가 있는지 확인하고 싶다면
UI에서 커서를 정렬한 후 참조할 수 있어 매우 편리합니다.
질의 설명
query {
GraphiQL에는 "Query"와 "Mutation"두 종류가 있습니다.'Query'는 데이터의 획득이고,'Mutation'은 데이터의 변경이다.
이번에는 데이터를 얻으려면query를 사용하세요.
organization(login: "組織のアカウント名"){
여기서 조직 객체를 가져옵니다.매개 변수login은 필수입니다. 조직의 계정을 입력하세요.
teams(query: "検索ワード",first: 100){
조직에 존재하는 팀의 대상을 얻다.query에 팀 이름과 관련된 문자열을 추가하여 선별할 수 있습니다.
우리 프로젝트는 이미 팀명 규칙을 제정했기 때문에, 나는 검색어를 넣고 그것을 걸어 놓았다.
first는 목록부터 n 개를 표시합니다.100까지만 지정할 수 있기 때문에, 초과하면 애프터 (지정한cursor 뒤에 있는 목록의 요소를 되돌려줍니다) 를 사용하여 표시 범위를 수정할 수 있습니다.
edges{
팀스는 여러 팀의 데이터가 있기 때문에 각자의 데이터에 접근하기 위해 엣지를 통해 접근합니다.edge는cursor 등node를 식별하는 정보를 가지고 있습니다.
node{
파티의 데이터(name 등 파티 자체의 정보)를 포함합니다.총결산
이렇게 사용하면 원하는 정보를 조회할 수 있고 탐색기의 사용도 상당히 편리하다.
나는 GraphiQL을 처음 접하여 간단하면서도 낭비하지 않는 API 요청을 실현할 수 있어서 매력적이라고 생각한다.
게임을 만들 때도 규격에 따라 변경된 API의 수정이 있었고 그때마다 대응하는 비용도 높았기 때문에 이를 해소할 수 있을지 고민하면서 그래픽QL에 대한 이해를 더 깊게 하고 싶었다.
Reference
이 문제에 관하여(GiitHub GraphiQL API로 한 번에 모든 정보 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yanyan/items/69a3d766210c4aa11395텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)