<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Webapi\Rest\Request; /** * Override parameter values * * Parameters in the webapi.xml can be forced. This ensures that on specific routes, a specific value is always used. * For instance, if there is a ".../me/..." route, the route should use only user information specific to the * currently logged in user. More specifically, if there was a "/customers/me/addresses" route, the service method * invoked could have a signature of "getAddresses($customerId)", but in the webapi.xml, the $customerId parameter * would be forced to be the customer id of the current authenticated user. * * The forced override parameter configuration is in the webapi.xml. * * <data> * <parameter name="customer.id" force="true">%customer_id%</parameter> * </data> * * Classes which implement ParamOverriderInterface would return the real value for the parameter, so a * ParamOverriderCustomerId would return the current authenticated user's customer id. If you * create new ParamOverriderInterface implementations, you can register new implementations by * adding to the parameter list for ParamsOverrider's dependency injection configuration. * * @api * @since 100.0.2 */ interface ParamOverriderInterface { /** * Returns the overridden value to use. * * @return string|int|null * @throws \Magento\Framework\Exception\NoSuchEntityException */ public function getOverriddenValue(); }