MediaWiki REL1_34
VirtualRESTService Class Reference

Virtual HTTP service instance that can be mounted on to a VirtualRESTService. More...

Inheritance diagram for VirtualRESTService:

Public Member Functions

 __construct (array $params)
 
 getName ()
 Return the name of this service, in a form suitable for error reporting or debugging.
 
 onRequests (array $reqs, Closure $idGeneratorFunc)
 Prepare virtual HTTP(S) requests (for this service) for execution.
 
 onResponses (array $reqs, Closure $idGeneratorFunc)
 Mangle or replace virtual HTTP(S) requests which have been responded to.
 

Protected Attributes

array $params = []
 Key/value map.
 

Detailed Description

Virtual HTTP service instance that can be mounted on to a VirtualRESTService.

Sub-classes manage the logic of either:

  • a) Munging virtual HTTP request arrays to have qualified URLs and auth headers
  • b) Emulating the execution of virtual HTTP requests (e.g. brokering)

Authentication information can be cached in instances of the class for performance. Such information should also be cached locally on the server and auth requests should have reasonable timeouts.

Since
1.23

Definition at line 36 of file VirtualRESTService.php.

Constructor & Destructor Documentation

◆ __construct()

VirtualRESTService::__construct ( array  $params)
Parameters
array$paramsKey/value map

Reimplemented in ParsoidVirtualRESTService, RestbaseVirtualRESTService, and SwiftVirtualRESTService.

Definition at line 43 of file VirtualRESTService.php.

References $params.

Member Function Documentation

◆ getName()

VirtualRESTService::getName ( )

Return the name of this service, in a form suitable for error reporting or debugging.

Returns
string The name of the service behind this VRS object.

Definition at line 53 of file VirtualRESTService.php.

◆ onRequests()

VirtualRESTService::onRequests ( array  $reqs,
Closure  $idGeneratorFunc 
)

Prepare virtual HTTP(S) requests (for this service) for execution.

This method should mangle any of the $reqs entry fields as needed:

  • url : munge the URL to have an absolute URL with a protocol and encode path components as needed by the backend [required]
  • query : include any authentication signatures/parameters [as needed]
  • headers : include any authentication tokens/headers [as needed]

The incoming URL parameter will be relative to the service mount point.

This method can also remove some of the requests as well as add new ones (using $idGenerator to set each of the entries' array keys). For any existing or added request, the 'response' array can be filled in, which will prevent the client from executing it. If an original request is removed, at some point it must be added back (with the same key) in onRequests() or onResponses(); it's reponse may be filled in as with other requests.

Parameters
array$reqsMap of Virtual HTTP request arrays
Closure$idGeneratorFuncMethod to generate unique keys for new requests
Returns
array Modified HTTP request array map

Reimplemented in ParsoidVirtualRESTService, SwiftVirtualRESTService, and RestbaseVirtualRESTService.

Definition at line 79 of file VirtualRESTService.php.

◆ onResponses()

VirtualRESTService::onResponses ( array  $reqs,
Closure  $idGeneratorFunc 
)

Mangle or replace virtual HTTP(S) requests which have been responded to.

This method may mangle any of the $reqs entry 'response' fields as needed:

  • code : perform any code normalization [as needed]
  • reason : perform any reason normalization [as needed]
  • headers : perform any header normalization [as needed]

This method can also remove some of the requests as well as add new ones (using $idGenerator to set each of the entries' array keys). For any existing or added request, the 'response' array can be filled in, which will prevent the client from executing it. If an original request is removed, at some point it must be added back (with the same key) in onRequests() or onResponses(); it's reponse may be filled in as with other requests. All requests added to $reqs will be passed through onRequests() to handle any munging required as normal.

The incoming URL parameter will be relative to the service mount point.

Parameters
array$reqsMap of Virtual HTTP request arrays with 'response' set
Closure$idGeneratorFuncMethod to generate unique keys for new requests
Returns
array Modified HTTP request array map

Reimplemented in SwiftVirtualRESTService.

Definition at line 114 of file VirtualRESTService.php.

Member Data Documentation

◆ $params

array VirtualRESTService::$params = []
protected

The documentation for this class was generated from the following file: