API:Calling internally

Sometimes other PHP code may wish to use the data access and aggregation functionality of the action API.

The steps are:

1) If you are executing in the context of an existing request from the user, prepare request parameters using the  class. The second parameter to its constructor is an array of API parameters that is the same as if making the request over the web. The third parameter to its constructor is whether to treat the data as a POST, specify   if the API module you're invoking only accepts POST requests.

If you need to provide an edit token as an API parameter when making edits or other changes, you can get the edit token like so:

2) Create and execute  instance. Because the parameter is an instance of a   object,   will not execute any formatting printers, nor will it handle any errors. A parameter error or any other internal error will cause an exception that may be caught in the calling code.

Important: If you want to create or edit pages, you have to pass  as a second parameter when creating the  :

3) Get the resulting data array.

Here is a complete example taken from (as of r112758):

If there is no user request context, you can use  instead of. Using  for write operations without passing request context causes bug 34838.