Backendless provides an easy-to-use API to introspect data tables. Given a table name, the API provides information about table columns, their names, data types, default values, etc. If a column represents a relationship, it is properly denoted as such in the provided information.
Consider the following data table. The table name is Person as it is indicated in the upper right corner:

The following code retrieves the schema information for the table:
Backendless.Data.describe("Person", new AsyncCallback<List<ObjectProperty>>() {
@Override
public void handleResponse(List<ObjectProperty> schema) {
for (ObjectProperty property : schema) {
Log.i(TAG, "Column name - " + property.getName());
Log.i(TAG, "Data type - " + property.getType());
Log.i(TAG, "Default value - " + property.getDefaultValue());
Log.i(TAG, "----------------------------");
}
}
@Override
public void handleFault(BackendlessFault fault) {
Log.e(TAG, fault.getMessage());
}
});
Backendless.Data.describe("Person", object : AsyncCallback<List<ObjectProperty>> {
override fun handleResponse(schema: List<ObjectProperty>) {
for (property in schema) {
Log.i(TAG, "Column name - ${property.name}")
Log.i(TAG, "Data type - ${property.type}")
Log.i(TAG, "Default value - ${property.defaultValue}")
Log.i(TAG, "----------------------------")
}
}
override fun handleFault(fault: BackendlessFault) {
Log.e(TAG, fault.message)
}
})
Backendless.shared.data.describe(tableName: "Person", responseHandler: { schema in
for property in schema {
print("Column name - \(property.name)")
print("Data type - \(property.type)")
print("Default value - \(property.defaultValue ?? "")")
print("----------------------------")
}
}, errorHandler: { fault in
print("Error: \(fault.message ?? "")")
})
[Backendless.shared.data describeWithTableName:@"Person" responseHandler:^(NSArray *schema) {
for (ObjectProperty *property in schema) {
NSLog(@"Column name - %@", property.name);
NSLog(@"Column name - %@", [property getTypeName]);
NSLog(@"Default value - %@", property.defaultValue);
NSLog(@"----------------------------");
}
} errorHandler:^(Fault *fault) {
NSLog(@"Error: %@", fault.message);
}];
const Backendless = require('backendless')
/*
Or use `import Backendless from 'backendless'` for client side.
If you don't use npm or yarn to install modules, you can add the following line
<script src="//api.backendless.com/sdk/js/latest/backendless.min.js"></script>
to your index.html file and use the global Backendless variable.
*/
Backendless.initApp('YOUR_APP_ID', 'YOUR_JS_API_KEY')
const onSuccess = schema => {
schema.forEach(property => {
console.log(`Column name - ${ property.name }`)
console.log(`Data type - ${ property.type }`)
console.log(`Default value - ${ property.defaultValue }`)
console.log('----------------------------')
})
}
const onError = error => {
console.error('Server reported an error: ', error.message)
console.error('error code: ', error.code)
console.error('http status: ', error.status)
}
Backendless.Data.describe('Person')
.then(onSuccess)
.catch(onError)
Backendless.Data.describe("Person").then((schema) {
schema.forEach((property) {
print("""Column name - ${property.name}
Data type - ${property.type}
Default value - ${property.defaultValue}
----------------------------""");
});
});
The code produces the following output:
Column name - created Data type - DATETIME Default value - null ---------------------------- Column name - updated Data type - DATETIME Default value - null ---------------------------- Column name - birthday Data type - DATETIME Default value - null ---------------------------- Column name - name Data type - STRING Default value - null ---------------------------- Column name - age Data type - INT Default value - null ---------------------------- Column name - ownerId Data type - STRING Default value - null ---------------------------- Column name - objectId Data type - STRING_ID Default value - null ----------------------------
i am getting null values instead of actual values from the backendless tables
If you experience a problem, please submit a support topic at https://support.backendless.com