검색 결과 :

×

magento 2의 graphql 또는 Magento 2의 GraphQl 구현은 무엇입니까?

GraphQL은 2015년 Facebook이 RESTful API의 대안으로 처음 도입한 쿼리 언어입니다. Magento 2에서는 GraphQL을 사용하여 시스템에서 데이터를 검색하고 조작하는 유연하고 효율적인 방법을 제공합니다.

Magento 2의 GraphQl 구현을 통해 개발자는 사용 가능한 데이터 유형과 이에 대해 수행할 수 있는 작업을 설명하는 스키마를 정의할 수 있습니다. 그런 다음 이 스키마는 GraphQL 쿼리를 사용하여 쿼리할 수 있는 API 세트를 생성하는 데 사용됩니다. Magento 2에서 GraphQL은 완전한 GraphQL API를 제공하기 위해 함께 작동하는 모듈 세트로 구현됩니다. 이러한 모듈에는 다음이 포함됩니다.

  • Magento_GraphQl: 이 모듈은 스키마 정의, 쿼리 실행, 오류 처리를 포함하여 GraphQL API의 핵심 기능을 제공합니다.
  • Magento_GraphQl인벤토리: 이 모듈은 제품 재고 수준 및 재고 정보를 쿼리하고 조작하기 위한 지원을 추가합니다.
  • Magento_GraphQlCache: 이 모듈은 GraphQL 쿼리 및 응답 캐싱에 대한 지원을 추가하여 성능을 향상시키고 서버 부하를 줄입니다.
  • Magento_GraphQl고객: 이 모듈은 고객 주문, 주소 및 계정 정보와 같은 고객 데이터 쿼리 및 조작에 대한 지원을 추가합니다.
  • Magento_GraphQlSales: 이 모듈은 주문, 송장, 배송과 같은 판매 데이터 쿼리 및 조작에 대한 지원을 추가합니다.
  • Magento_GraphQlUrlRewrite: 이 모듈은 제품, 카테고리, CMS 페이지의 URL과 같은 URL 재작성 정보를 쿼리하고 조작하기 위한 지원을 추가합니다.
  • 다음은 Magento 2에서 GraphQL을 사용하여 제품 정보를 검색하는 방법에 대한 예입니다.



    • 제품 정보에 대한 GraphQL 스키마를 정의합니다.

    • type Query { getProduct(sku: String!): 제품 } type Product { sku: String! 이름: 스트링! 가격: 플로트! 설명: 문자열 카테고리: [Category] } type Category { id: Int! 이름: 스트링! }
                          

    • Magento 2 모듈에서 getProduct 쿼리를 구현합니다.

    • productRepository = $productRepository; } /** * @inheritdoc */ 공용 함수 해결( Field $field, $context, ResolveInfo $info, array $value = null, array $args = null ) { $sku = $args['sku']; { $product = $this->productRepository->get($sku);를 시도해 보세요. } catch (NoSuchEntityException $e) { throw new GraphQlNoSuchEntityException(__('sku가 "%1"인 제품이 존재하지 않습니다.', $sku)); } return [ 'sku' => $product->getSku(), 'name' => $product->getName(), 'price' => $product->getPrice(), 'description' => $product- >getDescription(), 'categories' => $this->getCategories($product), ]; } /** * 제품 카테고리 가져오기 * * @param ProductInterface $product * @return 배열 */ private function getCategories(ProductInterface $product) { $categoryIds = $product->getCategoryIds(); $카테고리 = []; foreach ($categoryIds as $categoryId) { $category = $this->categoryRepository->get($categoryId); $categories[] = [ 'id' => $category->getId(), 'name' => $category->getName(), ]; } $categories를 반환합니다. } }   
                      

    • 모듈의 di.xml 파일에 쿼리 확인자를 등록합니다.

    •  MyCompany\MyModule\Model\Resolver\GetProduct
      
                          

    • 이러한 단계가 완료되면 이제 Magento 2에서 GraphQL을 사용하여 제품 정보를 쿼리할 수 있습니다. 예를 들어 SKU가 "12345"인 제품의 SKU, 이름, 가격 및 카테고리를 검색하려면 다음 GraphQL 쿼리를 사용할 수 있습니다.

    •                         { getProduct(sku: "12345") { sku 이름 가격 카테고리 { id 이름 } } }
                          

    • 이 쿼리는 스키마에 정의된 형식으로 제품 정보를 반환하므로 필요에 따라 데이터를 쉽게 검색하고 조작할 수 있습니다.

    Magento 2에서 GraphQL을 사용하면 개발자에게 다음과 같은 여러 가지 이점이 제공됩니다.


    • 유연한 쿼리: GraphQL을 사용하면 개발자는 필요한 데이터를 정확하게 지정하여 반환되는 불필요한 데이터의 양을 줄이고 성능을 향상시킬 수 있습니다.
    • 효율적인 데이터 검색: GraphQL은 데이터 검색에 필요한 요청 수를 최소화하고 네트워크 대기 시간을 줄이며 전반적인 성능을 향상시키도록 설계되었습니다.
    • 스키마 기반 개발: 사용 가능한 데이터 유형 및 작업에 대한 스키마를 정의함으로써 개발자는 코드가 시스템의 다른 부분과 호환되는지 확인하고 GraphQL에서 제공하는 도구 및 검증 도구를 활용할 수 있습니다.

    전반적으로 Magento 2의 GraphQL 구현은 시스템의 데이터를 작업하는 강력하고 유연한 방법을 제공하여 개발자가 확장 가능한 고성능 전자 상거래 애플리케이션을 보다 쉽게 ​​구축할 수 있도록 해줍니다.

    우리를 신뢰하는 1000개 이상의 조직



    문의하기


     당신의 응답을 주셔서 감사합니다. 곧 다시 연락드리겠습니다.

    문제가 발생했습니다. 문의사항을 다시 제출해 주세요.

miniOrange 마그네토 확장
안녕하세요!

도움이 필요하다? 우리는 바로 여기에 있습니다!

SUPPORT
miniOrange 지원팀에 문의하세요
성공

문의 해 주셔서 감사합니다.

24시간 이내에 연락을 받지 못한 경우 언제든지 다음 이메일로 후속 이메일을 보내주세요. info@xecurify.com