GraphQL

GraphQL 根底

参照Getting started with GraphQL Java and Spring Boot这篇文章学习即可

PS:能够应用 brew install --cask graphql-playground 装置 graphql for mac 客户端。

IDEA 怎么调试 GraphQL 利用

装置 JS GraphQL 插件

点击JS GraphQL装置插件

GraphQL 定义

schema.graphqls

type Query {    bookById(id: ID): Book}type Book {    id: ID    name: String    pageCount: Int    author: Author}type Author {    id: ID    firstName: String    lastName: String}

GraphQL 配置文件

.graphqlconfig

{  "name": "book-details",  "schemaPath": "schema.graphqls",  "extensions": {    "endpoints": {      "Default GraphQL Endpoint": {        "url": "http://localhost:8080/graphql", // 申请门路        "headers": {          "user-agent": "JS GraphQL"        },        "introspect": false      }    }  }}

创立一个查问文件

query.graphql

# {"id": "book-1"}query queryData($id: ID) {    bookById(id: $id) {        id name pageCount author {            id firstName lastName        }    }}

GraphQL 脚本目录构造

resources├── .graphqlconfig  # 配置文件├── query.graphql   # 查问文件└── schema.graphqls # 定义文件

执行后果

GraphQL 在 Skywalking 中的利用

graphql 协定文件门路: oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol 

GraphQL 配置文件

.graphqlconfig

{  "name": "skywalking",  "schemaPath": "schema.graphql",  "extensions": {    "endpoints": {      "Default GraphQL Endpoint": {        "url": "http://localhost:8080/graphql",        "headers": {          "user-agent": "JS GraphQL"        },        "introspect": true      }    }  }}

创立一个查问文件

query.graphql

query queryData {    readMetricsValues(        duration: {start: "2021-07-03 1400",end: "2021-07-03 1401", step: MINUTE},        condition: {            name: "instance_jvm_thread_runnable_thread_count",            entity: {                scope: ServiceInstance,                serviceName: "business-zone::projectA",                serviceInstanceName: "e8cf34a1d54a4058a8c98505877770e2@192.168.50.113",                normal: true            }        }    ) {         label values{ values{ id value }}    }}

执行后果

{  "data": {    "readMetricsValues": {      "values": {        "values": [          {            "id": "202107031400_YnVzaW5lc3Mtem9uZTo6cHJvamVjdEE=.1_ZThjZjM0YTFkNTRhNDA1OGE4Yzk4NTA1ODc3NzcwZTJAMTkyLjE2OC41MC4xMTM=",            "value": 22          },          {            "id": "202107031401_YnVzaW5lc3Mtem9uZTo6cHJvamVjdEE=.1_ZThjZjM0YTFkNTRhNDA1OGE4Yzk4NTA1ODc3NzcwZTJAMTkyLjE2OC41MC4xMTM=",            "value": 22          }        ]      }    }  }}

参考文档

  • Query Protocol
  • GraphQL官网
  • Getting started with GraphQL Java and Spring Boot
  • graphql-java/tutorials/book-details
  • graphql-playground
  • JS GraphQL

    分享并记录所学所见