Magento 2“웹 API 통합”이란 무엇입니까


9

개발자 문서

통합 스타일 웹 API를 사용하면 단일 웹 API 호출로보다 효율적인 통합을 위해 여러 서비스를 한 번에 실행할 수 있습니다. 이 동작의 예는 하나의 웹 API 호출이 제품을 작성할 수있는 카탈로그에서 볼 수 있습니다. 페이로드에 인벤토리 객체 및 미디어 객체가 포함 된 경우 프레임 워크는 해당 단일 API 호출에서 제품의 인벤토리 및 미디어도 생성합니다.

...

Magento Admin에 새로운 통합을 만듭니다. 통합을 작성하려면 시스템> 통합> 새 통합 추가를 클릭하십시오. 통합이 액세스 할 수있는 리소스를 제한해야합니다.

정확하게 통합이 무엇인지 명확하지는 않습니다. 첫 번째 문서 스 니펫은 통합이 단일 HTTP 요청에서 여러 API 호출을 연결하는 방법 일 수 있음을 나타냅니다. 그러나 이에 대한 구문 예제는 없습니다. 또한 두 번째 문서 스 니펫의 정보를 사용하면 통합 객체를 만들 수 있지만 이것으로 무엇을 해야하는지 명확하지 않습니다. 또한 코드를 파고 들어 통합 개체는 다른 인증 코드 경로를 사용하는 것으로 보입니다.

누구든지 이러한 "API 통합"이 무엇이며 어떻게 작동하는지 명확하게 알고 있습니까?

답변:


7

Magento 2에는 4 가지 유형의 사용자가 있으며 ( \ Magento \ Authorization \ Model \ UserContextInterface 참조 ), 웹 API를 통해 요청하는 동안 사용할 수 있습니다.

  • 익명 사용자 (손님). 요청에 토큰이나 쿠키가 사용되지 않은 경우 사용자는 익명으로 간주됩니다
  • 고객. 고객 토큰 또는 쿠키는 요청과 함께 전달되어야합니다
  • 관리자 관리자 토큰 또는 쿠키가 있어야합니다
  • 통합. 통합 액세스 토큰은 OAuth 2.0 스타일로 전달되거나 소비자 키, 소비자 비밀, 액세스 토큰, OAuth 1.0a 스타일의 액세스 토큰 비밀을 사용하여 요청에 올바르게 서명되어야합니다.

에서 통합을 생성 System > Integration > Add New Integration할 수 있으며 모든 관리자와 동일한 권한을 부여 할 수 있습니다 (ACL 트리는 동일 함). 웹 API 요청은 관리자 및 통합을 대신하여 이루어질 수 있습니다. 관리 사용자와의 통합과 다른 점은 타사가 OAuth 핸드 셰이크를 사용하여 웹 API 자격 증명을 검색 할 수 있다는 것 입니다.

OAuth 핸드 셰이크를 통해 다중 사용자 타사 시스템과 자동으로 통합 할 수 있습니다 (타사에서 지원하는 경우).

  • 통합 생성 중에 옵션 필드를 작성 Callback URL하고 Identity Link URL(타사 시스템에서 제공해야 함)
  • 통합을 활성화하려고하면 OAuth 핸드 셰이크가 트리거됩니다
  • 일부 데이터는 Magento에서 서버 간 POST 요청을 사용하여 콜백 URL로 전송됩니다. 팝업 창에 Identity Link URL (타사 시스템의 로그인 페이지)이 열리고 일부 GET 매개 변수가 전송됩니다.
  • 사용자 자격 증명이 성공적으로 인증되면 타사는 Magento에 요청 토큰을 요청한 다음이를 액세스 토큰으로 교환합니다. 또한 현재 Magento 인스턴스를 자체 레코드의 사용자 계정과 연결합니다. 즉, 여러 Magento 판매자가 동일한 타사 CRM에 계정을 보유 할 수 있으며 모든 판매자 계정은 Magento 인스턴스에 연결됩니다
  • 발급 된 액세스 토큰을 사용하여 Magento 웹 API에 요청을 할 수 있습니다. 이 토큰은 Magento 통합 레코드와 연결되며 API통합 편집 페이지의 탭 에서 선택한 리소스에 액세스 할 수 있습니다

한 번에 여러 서비스를 호출하는 것에 대한 빠른 참고 사항 인이 기능은 집계 API로 더 잘 알려져 있으며 통합 사용자 유형과 공통점이 없습니다.


틀 렸으면 말해줘. 그러나 Magento 2 인증에는 소비자 키가 없습니다. Docs는 M2가 두 개의 레깅 인증 프로세스를 구현하도록 명시하고 있습니다. 요청 및 액세스. 여기에 언급 된 바와 같이 devdocs.magento.com/guides/v2.2/get-started/authentication/…
vitoriodachef

2

여기서 통합은 통합 자와 개발자가 Magento API를 통해 Magento 시스템과 통신하는 웹 서비스를 사용하는 수단입니다. Magento가 관리자가 새 통합 양식으로 구성하도록 허용하는 하나 이상의 서비스를 호출 할 수 있습니다 (특정 API를 선택하거나 모두 선택하려면 해당 화면에서 아래로 스크롤)

보안 문제로 인해 Magento는 다음 세 가지 인증 중 하나를 통해 외부의 승인 된 요청 만 허용합니다.-토큰 기반 인증-OAuth 기반 인증-세션 기반 인증

모든 유형의 인증에서 통합 자와 개발자는 Magento에 사용자 계정을 등록해야합니다. 사용자 계정을 사용하면 Magento에 요청과 함께 보내야하는 토큰 ID를 얻을 수 있습니다.

예를 들어, 이미 사용자 계정과 통합 정보가 있다고 가정합니다. 이제 마 젠토에서 토큰을 얻도록 요청할 것입니다. 첫 번째 인증 유형 (토큰 기반 인증)을 사용하여 스 니펫을 보여줍니다.

curl -X POST "https://localhost/magento/index.php/rest/V1/integration/admin/token" \
     -H "Content-Type:application/json" \
     -d '{"username":"user_example", "password":"123123q"}'

성공하면 다음과 같은 토큰을 얻습니다 "asdf3hjklp5iuytre"

이제 Magento와 통합하여 API를 호출하여 데이터를 요청할 수 있습니다.

curl -X GET "http://localhost/magento/index.php/rest/V1/customers/2" \
     -H "Authorization: Bearer asdf3hjklp5iuytre"

마지막으로 Magento로부터 고객 목록을받을 수 있습니다. 예를 들어 curl 명령을 사용하고 있는데, 통합 자와 개발자는 PHP, C # 또는 다른 언어로 구현하여 서비스 URL에 대한 웹 서비스 요청을 만들 수 있습니다.

PS : SoapUI는 테스트를 위해 서비스를 요청하는 데 유용한 도구입니다.

도움이 되었기를 바랍니다.


그것은 시스템> 통합> 새 통합 추가의 "통합"개체를 전혀 포함하지 않는 것 같습니다. 뭔가 빠졌습니까?
Alan Storm

죄송합니다. 통합 자와 개발자가 Magento와 통합하는 방식에 중점을 둡니다. 통합 개체를 사용하면 관리자는 Magento 사용자 역할에 의존하지 않고 액세스 할 수있는 API를 사용자 지정할 수 있습니다. 써드 파티는 통합 오브젝트의 소비자 토큰 및 비밀 토큰으로 Magento 웹 API에 액세스하는 방법 중 하나로 OAuth 기반 인증을 사용해야합니다. 참조 devdocs.magento.com/guides/v2.0/get-started/authentication/...
투안 응우 엔

첫 번째 명령 후 두 번째 curl 명령을 사용할 때 "{"message ":"% fieldName = % fieldValue ","parameters ": {"fieldName ":"customerId ","fieldValue ": 2}}와 같은 엔티티가 없습니다. "이 메시지의 의미는 무엇입니까?
Rishabh Rk Rai
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.