# 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 `food-delivery-app/src/apollo/client.js` and `food-delivery-app/src/apollo/server.js` in Dashboard Queries are located in `food-delivery-admin/src/apollo/server.js` As an example look into `food-delivery-app/src/apollo/client.js` and the constant `getNotifications` the query is written as&#x20;

```javascript
query GetNotifications{
    notifications{
    _id
    order
    status
    }
}
```

On `line 1` GetNotifications is the query name for the frontend while on `line 2` notifications 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 FoodByCategory($category:String!){
    foodByCategory(category:$category){
    _id
    title
    description
    variations{
        _id
        type
        price
    }
    category{_id}
    img_url
    likes
    liked
    }
}
```

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