В Magento 1 мы использовали для проверки:
if (Mage::getSingleton('api/server')->getAdapter() != null) {
// request from Web-Service
}
Как проверить то же самое в Magento2?
Я не нашел подходящего адаптера, подходящего как для REST, так и для SOAP.
magento2
http-request
webapi
MagePsycho
источник
источник
Ответы:
Я использовал,
Magento\Framework\App\State::getAreaCode()
чтобы узнать, поступает ли запрос через SOAP / REST API.Вы можете проверить возможные коды города в
Magento\Framework\App\Area
классе.источник
Пожалуйста, проверьте с кодом ниже,
источник
Однажды у меня была похожая задача, и если я правильно помню, я сделал это, проверив,
\Magento\Framework\App\Request\Http::getFullActionName()
равно ли__
. Я не знаю почему, но для запросов REST это будет полное имя действия.Однако я не нашел это безопасным в то время, потому что это не было похоже на самое правильное решение, поэтому я в итоге строго проверил строку запроса:
Как вы уже догадались, в моей ситуации мне пришлось проверить, был ли текущий запрос REST очень специфичным.
Я не знаю о SOAP, но я предполагаю, что вы могли бы использовать аналогичный подход. Тем не менее, это все еще не совсем похоже на правильное решение.
источник