Using Cache Service

From DreamFactory
Jump to: navigation, search
DreamFactoryTutorialsUsing Cache Service

DreamFactory allows you to expose various Cache backends as API Endpoints. The following Cache services are currently supported:

  • Local Cache (configurable to use local file based cache, Redis, Memcached, APC, or Database)
  • Redis
  • Memcached

Provisioning a Cache Service

You can provision a cache service from the admin console.

Log in to the admin console and select the 'Services' tab. Click on the 'Create' button from the left menu. From the 'Service Type' drop down select Cache menu then select your desired Cache type (Local, Redis, Memcached). After that complete the new service form and save it to create your cache service. For more details on cache service provisioning please see this.

For this tutorial, we will use a Cache service named my-cache.

API Endpoints

Creating cache keys

Creating cache keys in bulk:

POST http://{url}/api/v2/{cache_service_name}

Request body:

{
  "{key_name}": "string"
}

Creating a single cache key:

POST http://{url}/api/v2/{cache_service_name}/{key_name}

Request body:

string|json

Note: Creating a cache key that already exists will return a Bad Request (400) response. Use PUT to replace existing key(s)

Replacing cache keys

Replacing cache keys in bulk:

PUT http://{url}/api/v2/{cache_service_name}

Request body:

{
  "{key_name}": "string"
}

Replacing a single cache key:

PUT http://{url}/api/v2/{cache_service_name}/{key_name}

Request body:

string|json

Updating a cache key

PATCH http://{url}/api/v2/{cache_service_name}/{key_name}

Request body:

string|json

Retrieving a cache key

GET http://{url}/api/v2/{cache_service_name}/{key_name}

Deleting a cache key

DELETE http://{url}/api/v2/{cache_service_name}/{key_name}

Example - Creating cache keys in bulk

  • Service name: my-cache
  • Request body:
{
    "key1":"value1",
    "key2":"value2",
    "key3":"value3"
}
  • Request URL:
POST https://foo.com/api/v2/my-cache

Example - Creating a cache key with custom TTL

  • Service name: my-cache
  • Cache key name: key1
  • TTL: 10 (minutes)
  • Request Content-Type: text/plain
  • Request body:
    A plain string value
  • Request URL:
POST https://foo.com/api/v2/my-cache/key1?ttl=10

Example - Creating a forever cache key

  • Service name: my-cache
  • Cache key name: customer
  • Request Content-Type: application/json
  • Request body:
{
    "name":"John Doe",
    "age":"30",
    "address":"123 st, Atlanta, GA"
}
  • Request URL:
POST https://foo.com/api/v2/my-cache/key1?forever=true

Example - Replacing cache keys in bulk

  • Service name: my-cache
  • Request body:
{
    "key1":"value1",
    "key2":"value2",
    "key3":"value3"
}
  • Request URL:
PUT https://foo.com/api/v2/my-cache

Example - Replacing a cache key with custom TTL

  • Service name: my-cache
  • Cache key name: key1
  • TTL: 10 (minutes)
  • Request Content-Type: text/plain
  • Request body:
    A plain string value
  • Request URL:
PUT https://foo.com/api/v2/my-cache/key1?ttl=10

Example - Replacing a cache key and store it forever

  • Service name: my-cache
  • Cache key name: customer
  • Request Content-Type: application/json
  • Request body:
{
    "name":"John Doe",
    "age":"30",
    "address":"123 st, Atlanta, GA"
}
  • Request URL:
PUT https://foo.com/api/v2/my-cache/key1?forever=true

Example - Retrieving a cache key

  • Service name: my-cache
  • Cache key name: key1
  • Request URL:
GET https://foo.com/api/v2/my-cache/key1

Example - Retrieving a cache key with default value

  • Service name: my-cache
  • Cache key name: key1
  • Default value: value1
  • Request URL:
GET https://foo.com/api/v2/my-cache/key1?default=value1

Example - Retrieving and clearing a cache key

  • Service name: my-cache
  • Cache key name: key1
  • Request URL:
GET https://foo.com/api/v2/my-cache/key1?clear=true

Example - Deleting a cache key

  • Service name: my-cache
  • Cache key name: key1
  • Request URL:
DELETE https://foo.com/api/v2/my-cache/key1