> For the complete documentation index, see [llms.txt](https://e-commero.gitbook.io/ecommero/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://e-commero.gitbook.io/ecommero/api-server/queries-mutations-and-fragments.md).

# Queries Mutations and Fragments

## Queries Mutations and Fragments

### Queries

Fetching data in a simple, predictable way is one of the core features of [Apollo Client](https://www.apollographql.com). [Queries](https://graphql.org/learn/queries/) are used to fetch [GraphQL](https://graphql.org/) data attach the result to your UI. In frontend mobile and dashboard we have written multiple queries in mobile app located in`shopping-cart-app/src/apollo/server.js` in Dashboard Queries are located in `shopping-cart-admin/src/apollo/server.js` As an example look into `shopping-cart-app/src/apollo/server.js` and the constant `getNotifications` the query is written as&#x20;

```javascript
query categories{
    categories{
    _id
    order
    status
    }
}
```

On `line 1` `categories` is the query name for the frontend while on `line 2` `categories` is the query name for backend. The parameters written inside notifications are output parameters they will be returned by the GraphQL endpoint.

Now let's take a look at another example this time we are going to pass some parameters as input to a query. The constant `foods` is a simple example for this located at `food-delivery-app/src/apollo/server.js`&#x20;

```javascript
query SubCategoriesById($id:String!){
    subCategoriesById(id:$id){
    _id
    title
    image
    category{
      _id
      title
    }
}
```

On `line 1` `SubCategoriesById` is the query name for the frontend we are passing a `String` where it's variable name is `id` `$` sign is used for variable name while `!` is used for required field. On `line 2` `subCategoriesById` is the query name for the  backend.
