У цій статті представлено приклади деяких запитів GraphQL для Модуль блогу Magento 2 . За допомогою цих запитів ви зможете отримати необхідні дані блогу для прогресивного веб-застосунку (PWA). Запити легко тестуються в ChromeiQL – розширення для браузера Chrome .

Зверніть увагу, що спочатку слід встановити розширення Magento 2 Blog GraphQL .

Щоб перевірити повну схему Blog GraphQL, перегляньте файл schema.graphqls .

Записи сторінки індексу блогу Запит GraphQL

Запит:

query GetPosts ($currentPage: Int $pageSize: Int) {
    blogPosts (currentPage: $currentPage pageSize: $pageSize sort: ["DESC"]) {
        total_count
        items {
            post_id
            title
            short_filtered_content
            author {
                author_id
                name
                author_url
            }
            post_url
            creation_time
            tags {
                tag_id
                title
                tag_url
            }
            categories {
                category_id
                title
                category_url
            }
        }
        total_pages
    }
}

Змінні:

{
"currentPage": 1,
"pageSize": 5
}

Результат:

В результаті ви отримаєте дані для перших 5 записів блогу, які мають відображатися на першій сторінці.

 Тест індексу graphql

Записи категорії блогу Запит GraphQL

За допомогою цього запиту ви отримаєте записи для певної категорії блогу, використовуючи ідентифікатор категорії або ідентифікатор URL-адреси категорії.

Запит:

query GetPosts ($currentPage: Int $pageSize: Int $categoryId: String) {
blogPosts (currentPage: $currentPage pageSize: $pageSize sort: ["DESC"] filter: {category_id: {eq: $categoryId}}) { total_count items { post_id title short_filtered_content author { author_id name author_url } post_url creation_time tags { tag_id title tag_url } categories { category_id title category_url } } total_pages } blogCategory (id: $categoryId) { title content } }
}

Змінні:

{
"currentPage": 1,
"pageSize": 5,
"categoryId":"fashion-show"
}

Результат:

 Тест категорії graphql

Записи автора блогу Запит GraphQL

За допомогою цього запиту ви отримаєте дані про записи автора, використовуючи ідентифікатор автора або ідентифікатор URL-адреси автора.

Запит:

query GetPosts ($currentPage: Int $pageSize: Int $authorId: String) {
blogPosts (currentPage: $currentPage pageSize: $pageSize sort: ["DESC"] filter: {author_id: {eq: $authorId}}) {
    total_count
    items {
        post_id
        title
        short_filtered_content
        author {
            author_id
            name
            author_url
        }
        post_url
        creation_time
        tags {
            tag_id
            title
            tag_url
        }
        categories {
            category_id
            title
            category_url
        }
    }
    total_pages
}
blogAuthor(id: $authorId) {
    name
}
}

Змінні:

{
"currentPage": 1,
"pageSize": 5,
"authorId":"store-administrator"
}

Результат:

 Тест автора graphql

Теги записів блогу Запит GraphQL

За допомогою цього запиту ви отримаєте список записів, що містять відповідний тег, використовуючи ідентифікатор тегу або ідентифікатор URL-адреси тегу.

Запит:

query GetPosts ($currentPage: Int $pageSize: Int $tagId: String) {
    blogPosts (currentPage: $currentPage pageSize: $pageSize sort: ["DESC"] filter: {tag_id: {eq: $tagId}}) {
        total_count
        items {
            post_id
            title
            short_filtered_content
            author {
                author_id
                name
                author_url
            }
            post_url
            creation_time
            tags {
                tag_id
                title
                tag_url
            }
            categories {
                category_id
                title
                category_url
            }
        }
        total_pages
    }
    blogTag (id: $tagId) {
        title
        content
    }
}

Змінні:

{
"currentPage": 1,
"pageSize": 5,
"tagId": "bags"
}

Результат:

 Теги graphql test

Пошук записів Запит GraphQL

За допомогою цього запиту ви отримаєте список записів, пов'язаних зі словом, яке ви шукаєте.

Запит:

query GetPosts ($currentPage: Int $pageSize: Int $searchQuery: String) {
        blogPosts (
            currentPage: $currentPage 
            pageSize: $pageSize 
            sort: ["DESC"]
            filter: {search: {eq: $searchQuery}}
        ) {
            total_count
            items {
                post_id
                title
                short_filtered_content
                author {
                    author_id
                    name
                    author_url
                }
                post_url
                creation_time
                tags {
                    tag_id
                    title
                    tag_url
                }
                categories {
                    category_id
                    title
                    category_url
                }
            }
            total_pages
        }
    }

Змінні:

{
"currentPage": 1,
"pageSize": 5,
"searchQuery:":"good"
}

Результат:

 Пошук graphql test

Дані окремого запису в блозі

За допомогою цього запиту ви зможете отримати запис у блозі за ідентифікатором запису або ідентифікатором URL.

Запит:

query GetPost ($postId: String) {
                blogPost (id: $postId) {
                    post_id
                    meta_title
                    meta_description
                    title
                    filtered_content
                    author {
                        author_id
                        name
                        author_url
                    }
                    post_url
                    creation_time
                    tags {
                        tag_id
                        title
                        tag_url
                    }
                    categories {
                        category_id
                        title
                        category_url
                    }
                }
            }

Змінні:

{
"postId": "kaytips-when-in-dubai"
}

Результат:

 Запис graphql test

Категорії бічної панелі Запит GraphQL

За допомогою цього запиту ви зможете отримати список категорій блогу.

Запит:

{
    blogCategories {
        items {
            category_id
            title                        
            category_url
        }
    }
}

Результат:

 Тест категорій бічної панелі GraphQL

Недавні записи бічної панелі Запит GraphQL

За допомогою цього запиту ви зможете отримати останні записи в блозі.

Запит:

query GetPosts ($pageSize: Int) {
    blogPosts (pageSize: $pageSize sort: ["DESC"]) {
        items {
            post_id
            title
            post_url
        }
    }
}

Результат:

 Тест повторної надсилання публікацій GraphQL

Теги бічної панелі Запит GraphQL

 

За допомогою цього запиту ви зможете отримати теги блогу.

Запит:

{
    blogTags {
        items {
            tag_id
            title
            tag_url
        }
    }
}

Результат:

 Тест тегів бічної панелі GraphQL

Архів Запит GraphQL

За допомогою цього запиту ви отримаєте список публікацій, пов'язаних з датою публікації.

Запит:

query GetPostArchive ($currentPage: Int $pageSize: Int $date: String) {
    blogPosts (
        currentPage: $currentPage
        pageSize: $pageSize
        sort: ["DESC"]
        filter: {publish_time: {like: $date}}
    ) {
        total_count
        items {
            post_id
            title
            short_filtered_content
            featured_image
            author {
                author_id
                name
                author_url
            }
            post_url
            publish_time
            tags {
                tag_id
                title
                tag_url
            }
            categories {
                category_id
                title
                category_url
            }
        }
        total_pages
    }
}

Змінні:

{
"currentPage": 1,
"pageSize": 5,
"date": "2021-06%"
}

Результат:

 Тест GraphQL Архів блогу