This simple web page demonstrates how you can use fmRESTor to interact with a FileMaker database via FileMaker Data API directly from an asynchronous JavaScript code. To test how fmRESTor works, simply host our demo database on your FileMaker Server, enter the access credentials below, and start testing the code samples. Please note that JavaScript's advantage is that it can be executed inside a web browser without having to host any intermediate code on a web server, but the disadvantage is that the whole code, including any secrets, are exposed to the user. If you are looking for a more secure environment, check out our PHP version of fmRESTor.
Please fill up your access credentials to your FileMaker database where is hosted fmRESTor demo database
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.getProductInformation((requestSuccess) => {
// call method "getProductInformation" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "getProductInformation" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.getDatabaseNames((requestSuccess) => {
// call method "getDatabaseNames" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "getDatabaseNames" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.getScriptNames((requestSuccess) => {
// call method "getScriptNames" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "getScriptNames" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.getLayoutNames((requestSuccess) => {
// call method "getLayoutNames" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "getLayoutNames" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.getLayoutMetadata((requestSuccess) => {
// call method "getLayoutMetadata" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "getLayoutMetadata" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let parameters = {
"fieldData": {
"surname": "Create surname",
"email": "email@email.com",
"birthday": "1.1.2001",
"personal_identification_number": "99",
"address": "Street 24, City"
}
}
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.createRecord(parameters, (requestSuccess) => {
// call method "createRecord" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "createRecord" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let id = recordId; // Replace "recordId" for number - Record ID
let parameters = {
"script": "Log request",
"script.param": "MyScriptParameters",
"script.prerequest": "Log request",
"script.prerequest.param": "MyScriptPreRequestParameters",
"script.presort": "Log request",
"script.presort.param": "MyScriptPreSortParameters"
}; // Optional
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.deleteRecord(id, parameters, (requestSuccess) => {
// call method "deleteRecord" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "deleteRecord" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let id = recordId; // Replace "recordId" for number - Record ID
let parameters = {
"script": "Log request",
"script.param": "MyScriptParameters",
"script.prerequest": "Log request",
"script.prerequest.param": "MyScriptPreRequestParameters",
"script.presort": "Log request",
"script.presort.param": "MyScriptPreSortParameters"
}; // Optional
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.duplicateRecord(id, parameters, (requestSuccess) => {
// call method "duplicateRecord" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "duplicateRecord" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let id = recordId; // Replace "recordId" for number - Record ID
let parameters = {
"fieldData": {
"surname": "name was Surname",
"email": "emailwasedited@email.com",
"personal_identification_number": "1"
}
}
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.editRecord(id, parameters, (requestSuccess) => {
// call method "editRecord" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "editRecord" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let id = recordId; // Replace "recordId" for number - Record ID
let parameters = {
"script": "Log request",
"script.param": "MyScriptParameters",
"script.prerequest": "Log request",
"script.prerequest.param": "MyScriptPreRequestParameters",
"script.presort": "Log request",
"script.presort.param": "MyScriptPreSortParameters",
"layout.response": "php_user",
"_limit.USER_licence": 5,
"_offset.USER_licence": 10
}; // Optional
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.getRecord(id, parameters, (requestSuccess) => {
// call method "getRecord" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "getRecord" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let parameters = {
"_limit": 5
}; // Optional
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.getRecords(parameters, (requestSuccess) => {
// call method "getRecords" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "getRecords" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let parameters = {
"query": [
{
"email": "==email@email.com",
"birthday": "1.1.2001",
"personal_identification_number": "99",
"address": "Street 24, City",
"omit": "true"
}
]
}
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.findRecords(parameters, (requestSuccess) => {
// call method "findRecords" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "findRecords" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let parameters = {
"globalFields": {
"USER::g_one": "Global g_one is set up",
"USER::g_text": "Global g_text is set up"
}
}
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.setGlobalField(parameters, (requestSuccess) => {
// call method "setGlobalField" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "setGlobalField" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let scriptName = "Log request"
let parameters = {
"script.param": "MyScriptParameters"
}
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.runScript(scriptName, parameters, (requestSuccess) => {
// call method "runScript" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "runScript" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
// Example parameters
let id = recordId; // Replace "recordId" for number - Record ID
let containerFieldName = "photo" // Field name with container
let containerFieldRepetition = 1;
let file = document.getElementById('uploadFile').files[0]; // Replace 'uploadFile' for your ID - Input file
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.login((loginSuccess) => {
fm.uploadFileToContainter(id, containerFieldName, containerFieldRepetition, file, (requestSuccess) => {
// call method "uploadFileToContainter" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "uploadFileToContainter" failed ( variable "requestError" contains reason )
});
}, (loginError) => {
// login to database failed ( variable "loginError" contains reason )
});
let fm = new fmRESTorJS(YOUR_HOST,
YOUR_DATABASE_NAME,
YOUR_DATABASE_LAYOUT,
YOUR_DATABASE_USER,
YOUR_DATABASE_PASSWORD);
fm.logout((requestSuccess) => {
// call method "logout" was successfull ( variable "requestSuccess" contains response )
}, (requestError) => {
// call method "logout" failed ( variable "requestError" contains reason )
});