Tôi đã có một nhiệm vụ tương tự một lần, và nếu tôi nhớ chính xác, tôi đã làm điều này bằng cách kiểm tra nếu \Magento\Framework\App\Request\Http::getFullActionName()
bằng __
. Tôi không biết tại sao, nhưng đối với các yêu cầu REST, đây sẽ là tên hành động đầy đủ.
Tuy nhiên, tôi không thấy điều này an toàn vào thời điểm đó vì nó không cảm thấy là giải pháp chính xác nhất, vì vậy tôi đã kết thúc bằng cách kiểm tra nghiêm ngặt chuỗi yêu cầu:
if (
$this->request->getRequestString() === '/rest/V1/carts/mine/payment-information'
) {
...
Như bạn có thể đoán, trong tình huống của tôi, tôi phải kiểm tra xem yêu cầu REST hiện tại có phải là một yêu cầu rất cụ thể không.
Tôi không biết về SOAP, nhưng tôi cho rằng bạn có thể sử dụng một cách tiếp cận tương tự. Tuy nhiên, nó vẫn không hoàn toàn cảm thấy như giải pháp thích hợp.