zoukankan      html  css  js  c++  java
  • graphql-mesh 试用

    前边有简单介绍多graphql-mesh 以下是一个简单的试用

    环境准备

    • 项目初始化
    yarn  init -y
    • 添加依赖
    yarn add graphql @graphql-mesh/runtime @graphql-mesh/cli @graphql-mesh/openapi
    • pacakge.json 内容
    {
      "name": "first",
      "version": "1.0.0",
      "main": "index.js",
      "license": "MIT",
      "dependencies": {
        "@graphql-mesh/cli": "^0.0.16",
        "@graphql-mesh/openapi": "^0.0.16",
        "@graphql-mesh/runtime": "^0.0.16",
        "graphql": "^14.6.0"
      },
      "scripts": {
        "start": "graphql-mesh serve"
      }
    }

    简单项目使用

    • 配置
      .meshrc.yml 文件
     
    sources:
      - name: Wiki
        source: https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/swagger.yaml
        handler:
          name: openapi
    • 启动
    yarn start
    • 效果
      启动的GraphiQL 界面
    • 查询
     
    query wikipediaMetrics {
      getMetricsPageviewsAggregateProjectAccessAgentGranularityStartEnd(
        access: ALL_ACCESS
        agent: USER
        start: "20200101"
        end: "20200226"
        project: "en.wikipedia.org"
        granularity: DAILY
      ) {
        items {
          views
        }
      }
    }
    • 应用使用
    const { getMesh, parseConfig } = require('@graphql-mesh/runtime');
    const { ApolloServer } = require('apollo-server');
    async function test() {
      // This will load the config file from the default location (process.cwd)
      const meshConfig = await parseConfig();
      const { execute, schema, contextBuilder } = await getMesh(meshConfig);
      // Use `execute` to run a query directly and fetch data from your APIs
      const { data, errors } = await execute(/* GraphQL */ `
        query wikipediaMetrics {
          getMetricsPageviewsAggregateProjectAccessAgentGranularityStartEnd(
            access: ALL_ACCESS
            agent: USER
            start: "20200101"
            end: "20200226"
            project: "en.wikipedia.org"
            granularity: MONTHLY
          ) {
            items {
              views
            }
          }
        }
      `);
      // Or, if you wish to make this schema publicly available, expose it using any GraphQL server with the correct context, for example:
      const server = new ApolloServer({
        schema,
        context: contextBuilder
      });
    }

    说明

    从使用上的基本感受就是graphql-mesh 很方便

    参考资料

    https://github.com/Urigo/graphql-mesh

  • 相关阅读:
    【Uva 10618】Tango Tango Insurrection
    Scripting web services
    防止SQL注入式攻击的笔记
    Net中的Request和Response对象的理解
    Net中的Request和Response对象的理解
    Net中的Request和Response对象的理解
    UEditor编辑器第一次赋值失败的解决方法
    我不问+你不说
    我不问+你不说
    我不问+你不说
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12563174.html
Copyright © 2011-2022 走看看