Write handlers

This is the official documentation of the @forestadmin/agent Node.js agent.

You may want to be able to create or edit new records from the Forest Admin GUI.


The implementation is very straightforward: you need to implement 3 handlers: createRecord, updateRecord and deleteRecord.

All handlers are optional and can be omitted if you don't want to support a specific operation.

The createRecord handler can return a value. This is useful if the target API generates an id for the record.


In this example, we will use the JSON Placeholder ↗ API to create, update and delete records.

const axios = require('axios');
const { createReplicaDataSource } = require('@forestadmin/datasource-replica');

const url = 'https://jsonplaceholder.typicode.com';

const myCustomDataSource = createReplicaDataSource({
  // ... Implement record synchronization as explained in the previous sections

  // Create the record in the target API
  createRecord: async (collectionName, record) => {
    const response = await axios.post(`${url}/${collectionName}`, record);

    // Return the record as it was created in the target API
    return response.data;

  // Update the record in the target API
  updateRecord: async (collectionName, record) => {
    await axios.put(`${url}/${collectionName}/${record.id}`, record);

  // Delete the record in the target API
  deleteRecord: async (collectionName, record) => {
    await axios.delete(`${url}/${collectionName}/${record.id}`);

Last updated