Akamai provides a simple REST API for automating content purge requests. For detailed information regarding the API, please refer to the CCU REST API Developers Guide.
Akamai's REST API supports a number of calls. In this article I will only cover the calls to:
- Make a Purge Request
- Check a Purge Status
I've implemented an AkamaiRestFlusher in the form of a Deployer Extension. When a page in SDL Web (Tridion) is sent for publishing, this extension triggers the Akamai purge automatically.
A properties file named publications-domain.properties provides the list of public website base domains known by Akamai keyed by publication id. For example:
91=http://www.firstexample.com
93=http://www.secondexample.com
96=http://www.thirdexample.com
The deployer extension takes the data available from the deployment package, like the publication id and page URL Path, to construct the page URL known by Akamai.
In addition to constructing the page URL for purging, the extension also constructs a list of binary URLs referenced by the page. The purge request will include the page URL and all binary URLs in one call.
The AwaitPurgeCompletion property of the deployer extension allows the administrator to determine whether the publishing task should hold and wait until the entire purge completes before continuing. In case this is set to true, the extension utilizes the pingAfterSeconds attribute, available in the response from the purge call, to halt the processing before submitting a call to check the purge status. The extension continues submitting calls to check the purge status until the purge completion is confirmed or the maximum waiting time of 30 minutes is reached.
Akamai purges usually take time to complete, so the general advise is to set the AwaitPurgeCompletion property to false.
All communication is performed using JSON. Below are the code samples.