graphql-friendly is an easy and friendly alternative to apollo-client.
I have never found another graph client that apollo-client. Graphql queries can be performed with standard http client (like axios) but these client does not support graphql subscriptions. apollo-client was the only one however it is not quiet simple as i would like.
Morever, apollo-client has been originally made for react and I love vue. There is a good plugin for vue. I remember that configure apollo for Nuxt.js was such a pain and I had a lot of issue about the cache. I searched all Github to find a solution and i lost a lot of time. Now i have others projects with vue and graphql and I need a more simple tool for that.
- ⚡ Send
queryandmutationrequest to your favorite graphql API - 🎉 Supports
subscriptionrequest - 🌈 Supports variables with your queries
- 🐙 Accept graphql query as string or as object (parsed with
graphl-tag) - 🌀 Vue 3 plugin
npm install graphql-friendly
To declare your client, your just need the following line
import { GraphqlClient } from 'graphql-friendly';
const myGraphqlClient = new GraphqlClient('http://localhost:10000/v1/graphql');Then, you just have to call the method you want :
import gql from 'graphql-tag';
const createUser = gql`
mutation createUser($email: String!) {
insert_users(objects: {
email: $email,
nickname: "fefe",
password: "zefe"
}) {
returning {
id
}
}
}
`;
const answer = await myGraphqlClient.query({
query: CreateUser,
variables: { email: '[email protected]' },
});
console.log(answer) // { insert_users: { ... }}For the moment, .mutation is exactly the same as .query.
Graphql allows you to make subscription. To do this, you juste have to call the subscribe method and subscribe the answer
const myObserver = myGraphqlClient.subscribe({ query: 'subscription { users { id } }', variables: {} })
for await (const event of myObserver) {
console.log(event);
break; // If you want to cut the subscription
}import { createApp } from 'vue';
import GraphqlFriendly from 'graphql-friendly';
const app = createApp(App);
app.use(GraphqlFriendly, {
url: 'http://localhost:10000/v1/graphql',
});After installing the plugin, the client is accessible in your components as this.$graphqlClient.
query: string | object - The query can be a graphql string or parsed query with graphql-tag.variables: object - Variables provided to your query
returns the graphql answer
query: string | object - The query can be a graphql string or parsed query with graphql-tag.variables: object - Variables provided to your query
returns the graphql answer
query: string | object - The query can be a graphql string or parsed query with graphql-tag.variables: object - Variables provided to your query