Code前端首页关于Code前端联系我们

使用GraphQl开发微信小程序

terry 2年前 (2023-09-23) 阅读数 81 #移动小程序

我写了一个小程序,想学习graphql并练习一下。现在我有了这个教程

Apollo

Apollo 是一个关于GraphQl的完整工具包。后端语言有java、php、nodej等各种。它是一个对Future进行封装的前端框架,使得Future变得简单易用。 ,还有更多优化的类库。 vue、react 等。

小程序

但是小程序与传统网站不同。小程序没有浏览器环境,也没有使用自己的API。显然,像Apollo这样来自好社区的好工具不能用在小程序中。

毕竟小程序专业性比较强,想要用就得自己动手。

原理

其实GraphQl请求和Restfel api请求是一样的,都是HTTP请求。只是GraphQl对于一个请求只有一个输入,通常是graphql服务器输入,通常是/graphql并且发布了,大家。因此,

GraphQl的请求只不过是一个post方法请求http://xxxx.com/graphql。然后后端将参数传递给graphql,这样graphql服务器就可以根据不同的参数执行不同的方法,从而实现不同的界面效果。

明白这个原理后,就可以开始慢慢玩了。

Start

var Fly=require("../lib/wx.js") //wx.js is your downloaded code
var fly=new Fly(); //Create an instance of Fly
import message from './message'
import { create_client } from 'tiny-graphql-client'

const client =create_client( async( body)=>{
  const res_data = await fly.post("/graphql",body)
  const {data ,errors}=res_data;
  if(errors){
    message.error(errors[0].message);
    throw errors;
  }
  return res_data.data;
})

export default client;
  • fly是一个兼容小程序的http组件。您可以使用原生请求来替换它。
  • tiny-graphql-client是一个由其他人包装的graphql实用程序类。详情:https://github.com/xialvjun/tiny-graphql-client
  • graphql返回的字段必须有data,无论成功还是失败。仅当发生错误时才会显示 errors 字段。因此,在处理graphql全局返回时,我们首先判断是否存在数组errors。如果是这样,则发生错误。没有什么意味着成功。

使用

查询

user=await this.$parent.client.run(`query getUser{getUser{id nickName avatarUrl space nowSpace album}}`);

变异

let bucket=await this.$parent.client.run(`mutation createBucket($name:String!){createBucket(name:$name){id name createdAt}}`,this.album);

使用前一定要指定上面封装的客户端。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门