useApi composable

useApi composable allows to execute received GraphQL query with optional variables and headers and returns the result.

API

useApi composable returns the following properties:

  • query - function that executes a GraphQL query and handle its error and result
  • mutate - function that executes received GraphQL Mutation with optional variables and headers and returns the result.

Interfaces

type FetchPolicy = 'cache-first' | 'network-only' | 'cache-only' | 'no-cache' | 'standby'; type Variables = { [key: string]: any; }; type Error = { message: string; locations?: { line: number; column: number; }[]; path?: string[]; extensions?: any; }; type Request = <DATA, VARIABLES extends Variables = Variables>( request: string, variables?: VARIABLES, fetchPolicy?: FetchPolicy, ) => Promise<{ data: DATA, errors: Error[] }>; interface UseApiInterface { query: Request; mutate: Request; } 

Example

Execute a GraphQL query to get cart price:

import { useApi } from '~/composables/useApi'; const GET_CART_PRICE_QUERY = ` query GET_CART_PRICE_QUERY($cartId: String!) { cart(cart_id: $cartId) { prices { subtotal_excluding_tax { value } } } } `; export default { setup() { const { query } = useApi(); async function getCartPrice(cartId: string) { return await query( GET_CART_PRICE_QUERY, { cartId }, { 'Accept': 'application/json' } ); } } };