Eksempler

I denne artikel:


Attention   

 

I følgende eksempel går vi ud fra en shop med 42 ordrer i alt.

 

Hent ordrer

Hvis vi vil hente ID, sprog, site ID og ordrekommentarer for alle ordrer i shoppen, kan vi benytte følgende forespørgsel:

POST {shop_domain}.api.mywebshop.io/graphql


query {
  orders {
    data {
      id
      languageISO
      siteId
      orderComment
    }
  }
}

Response


{
  "data": {
    "orders": {
      "data": [
        {
          "id": "1",
          "languageISO": "DK",
          "siteId": "1"
        },
        ...,
        {
          "id": "42",
          "languageISO": "DK",
          "siteId": "1"
        }
      ]
    }
  }
}

Attention   

     POST {shop_domain}.api.hostedshop.dk/graphql

 

 


Brug af pagination

For at begrænse antallet af returnerede resultater, kan vi supplere med paginationsmuligheder. Følgende forespørgsel demonstrerer hentning af højst 2 ordrer per side, med resultater fra side 3:

POST {shop_domain}.api.mywebshop.io/graphql


query {
  orders (pagination:{
    limit: 2,
    page: 3
  }) {
    pagination {
      currentPage
      from
      perPage
      to
      total
    }
    data {
      id
      languageISO
      siteId
    }
  }
}

Response


{
  "data": {
    "orders": {
      "pagination": {
        "currentPage": 3,
        "from": 5,
        "perPage": 2,
        "to": 6,
        "total": 6
      },
      "data": [
        {
          "id": "8",
          "languageISO": "DK",
          "siteId": "1"
        },
        {
          "id": "9",
          "languageISO": "DK",
          "siteId": "1"
        }
      ]
    }
  }
}

Attention   

     POST {shop_domain}.api.hostedshop.dk/graphql

 

 


Brug af sortering

Det er ligeledes muligt at sortere de returnerede resultater i forhold til et givent felt, i en given ordre:

POST {shop_domain}.api.mywebshop.io/graphql


query {
  orders (order:{
    field: id,
    direction: DESC
  }) {
    data {
      id
    }
  }
}

Response


{
  "data": {
    "orders": {
      "data": [
        {
          "id": "42"
        },
        {
          "id": "41"
        },
        ...,
        {
          "id": "1"
        }
      ]
    }
  }
}

Attention   

     POST {shop_domain}.api.hostedshop.dk/graphql

 

 


Brug af søgning

En anden måde at begrænse de returnerede resultater på, er ved at benytte søgeparametre. Følgende eksempel viser hvordan man henter alle ordrer, med ordre ID mindre end 3, og større end 41:

POST {shop_domain}.api.mywebshop.io/graphql


query {
  orders (search:[
    {
      field: id,
      comparator: LESS_THAN
      value:"3"
    },
    {
      field: id,
      comparator: GREATER_THAN
      value:"41",
      operator:OR
    }
  ]) {
    data {
      id
    }
  }
}

Response


{
  "data": {
    "orders": {
      "data": [
        {
          "id": "1"
        },
        {
          "id": "2"
        },
        {
          "id": "42"
        }
      ]
    }
  }
}

Attention   

     POST {shop_domain}.api.hostedshop.dk/graphql

 

 


Det hele i kombination

Vi kan kombinere alle ovenstående eksempler i en enkelt forespørgsel:

POST {shop_domain}.api.mywebshop.io/graphql


query {
  orders(
    pagination:{limit:3,page:2}
    order:{field:id, direction:DESC}
    search: [{field: id, comparator: GREATER_THAN, value: "30"}]
  ) {
    data {
      id
      createdAt
    }
  }
}

Response


{
  "data": {
    "orders": {
      "data": [
        {
          "id": "39",
          "createdAt": "2019-04-08T09:09:44+00:00"
        },
        {
          "id": "38",
          "createdAt": "2019-04-08T08:36:43+00:00"
        },
        {
          "id": "37",
          "createdAt": "2019-04-05T14:10:05+00:00"
        }
      ]
    }
  }
}

Attention   

     POST {shop_domain}.api.hostedshop.dk/graphql