当前位置 : 主页 > 网络编程 > JavaScript >

dreamfactory开源平台的使用

来源:互联网 收集:自由互联 发布时间:2021-07-03
DreamFactory是一个可以为移动端、Web端和物联网终端等应用提供RESTAPI的免费、开源平台。 Dreamfactory可将数据库直接发布为REST服务,节约服务端开发成本(服务端开发为零),提供标准的
        DreamFactory是一个可以为移动端、Web端和物联网终端等应用提供REST API的免费、开源平台。
        Dreamfactory可将数据库直接发布为REST服务,节约服务端开发成本(服务端开发为零),提供标准的REST API,支持的常见的SQL、NSQL商业数据库和文件存储系统。
        因为官方提供的api不是很好用(主要是不能控制是否异步),本人自己封装了一套登陆、增删改查的方法,经历过几个大项目的测试。
        DreamFactory 官方网站:https://www.dreamfactory.com/。
        DreamFactory Github:https://github.com/dreamfactorysoftware/dreamfactory。

1. [代码][JavaScript]代码    

var DfServer = 'http://192.168.100.216:8888/';
var AppName = 'myApp1';

function loginUser(name, pwd) {
    var url = DfServer + 'rest/user/session';
    var data = {
        'email': name,
        'password': pwd
    };
    var loginState = false;
    $.ajax({
        dataType: 'json',
        contentType: 'application/json;charset=utf-8',
        url: url,
        data: JSON.stringify(data),
        cache: false,
        async: false,
        type: 'POST',
        headers: {
            "X-DreamFactory-Application-Name": AppName
        },
        success: function (response) {
            $.cookie("GEO_USERNAME", name, { expires: 1, path: '/' });
            $.cookie("GEO_Token", response.session_id, { expires: 1, path: '/' });
            loginState = true;
            $.cookie("first_name", response.first_name, { expires: 1, path: '/' });
            $.cookie("last_name", response.last_name, { expires: 1, path: '/' });
            $.cookie("display_name", response.display_name, { expires: 1, path: '/' });
        },
        error: function (response) {
            var msg = "用户密码出错!";
            if (response.content && response.content.data && response.content.data.error) {
                msg += "详细信息:" + response.content.data.error[0].message;
            }
            msg = msg.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&').replace(/&apos;/g, '\'');
            alert(msg);
        }
    });
    return loginState;
}

function getToken() {
    return $.cookie('GEO_Token');
}

function getRecordsByFilter(database, table, filter, success, error, async) {
    var url = DfServer + 'rest/' + database + '/' + table;
    var token = getToken();
    var data = null;
    if (filter == null || filter == "" || filter == undefined)
        data = null;
    else
        data = { filter: filter };
    if (async == null)
        async = false;
    $.ajax({
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        url: url,
        data: data,
        cache: false,
        async: async,
        type: 'GET',
        headers: {
            "X-DreamFactory-Application-Name": AppName,
            "X-DreamFactory-Session-Token": token
        },
        success: function (response) {
            if (typeof success !== 'undefined') {
                success(response);
            }
        },
        error: function (response) {
            var msg = "发生未知错误,但是服务器没有提供相关错误信息,请联系系统管理员!";
            if (response.content && response.content.data && response.content.data.error)
                msg = response.content.data.error[0].message;
            else if (response.responseText)
                msg = JSON.stringify(response.responseText);
            msg = msg.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&').replace(/&apos;/g, '\'');
            if (typeof error !== 'undefined' && error) {
                error(msg);
            }
        }
    });
}

function getRecordsByFilterOrder(database, table, filter, order, success, error, async) {
    var url = DfServer + 'rest/' + database + '/' + table;
    var token = getToken();
    var data = null;
    if (!filter)
        filter = "";
    data = { filter: filter, order: order };
    if (async == null)
        async = false;
    $.ajax({
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        url: url,
        data: data,
        cache: false,
        async: async,
        type: 'GET',
        headers: {
            "X-DreamFactory-Application-Name": AppName,
            "X-DreamFactory-Session-Token": token
        },
        success: function (response) {
            if (typeof success !== 'undefined') {
                success(response);
            }
        },
        error: function (response) {
            var msg = "发生未知错误,但是服务器没有提供相关错误信息,请联系系统管理员!";
            if (response.content && response.content.data && response.content.data.error)
                msg = response.content.data.error[0].message;
            else if (response.responseText)
                msg = JSON.stringify(response.responseText);
            msg = msg.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&').replace(/&apos;/g, '\'');
            if (typeof error !== 'undefined' && error) {
                error(msg);
            }
        }
    });
}

function getPageRecordsByFilterOrder(database, table, filter, order, limit, offset, success, error, async) {
    var url = DfServer + 'rest/' + database + '/' + table;
    var token = getToken();
    var data = null;
    if (!filter)
        filter = "";
    data = { filter: filter, order: order, include_count: true, limit: limit, offset: offset };
    if (async == null)
        async = false;
    $.ajax({
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        url: url,
        data: data,
        cache: false,
        async: async,
        type: 'GET',
        headers: {
            "X-DreamFactory-Application-Name": AppName,
            "X-DreamFactory-Session-Token": token
        },
        success: function (response) {
            if (typeof success !== 'undefined') {
                success(response);
            }
        },
        error: function (response) {
            var msg = "发生未知错误,但是服务器没有提供相关错误信息,请联系系统管理员!";
            if (response.content && response.content.data && response.content.data.error)
                msg = response.content.data.error[0].message;
            else if (response.responseText)
                msg = JSON.stringify(response.responseText);
            msg = msg.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&').replace(/&apos;/g, '\'');
            if (typeof error !== 'undefined' && error) {
                error(msg);
            }
        }
    });
}

function addRecords(database, table, data, success, error, async) {
    var url = DfServer + 'rest/' + database + '/' + table;
    var token = getToken();
    if (data == null || data == "" || typeof data == 'undefined')
        return;
    if (async == null)
        async = false;
    $.ajax({
        dataType: 'json',
        contentType: 'application/json;',
        url: url,
        data: JSON.stringify(data),
        async: async,
        type: 'POST',
        headers: {
            "X-DreamFactory-Application-Name": AppName,
            "X-DreamFactory-Session-Token": token
        },
        success: function (response) {
            if (typeof success !== 'undefined') {
                success(response);
            }
        },
        error: function (response) {
            var msg = "发生未知错误,但是服务器没有提供相关错误信息,请联系系统管理员!";
            if (response.content && response.content.data && response.content.data.error)
                msg = response.content.data.error[0].message;
            else if (response.responseText)
                msg = JSON.stringify(response.responseText);
            msg = msg.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&').replace(/&apos;/g, '\'');
            if (typeof error !== 'undefined' && error) {
                error(msg);
            }
        }
    });
}

function updateRecords(database, table, data, success, error, async) {
    var url = DfServer + 'rest/' + database + '/' + table;
    var token = getToken();
    if (data == null || data == "" || typeof data == 'undefined')
        return;
    if (async == null)
        async = false;
    $.ajax({
        dataType: 'json',
        contentType: 'application/json;',
        url: url,
        data: JSON.stringify(data),
        cache: false,
        async: false,
        type: 'PUT',
        headers: {
            "X-DreamFactory-Application-Name": AppName,
            "X-DreamFactory-Session-Token": token
        },
        success: function (response) {
            if (typeof success !== 'undefined') {
                success(response);
            }
        },
        error: function (response) {
            var msg = "发生未知错误,但是服务器没有提供相关错误信息,请联系系统管理员!";
            if (response.content && response.content.data && response.content.data.error)
                msg = response.content.data.error[0].message;
            else if (response.responseText)
                msg = JSON.stringify(response.responseText);
            msg = msg.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&').replace(/&apos;/g, '\'');
            if (typeof error !== 'undefined' && error) {
                error(msg);
            }
        }
    });
}

function deleteRecordsByFilter(database, table, filter, success, error, async) {
    var url = DfServer + 'rest/' + database + '/' + table;
    var token = getToken();
    if (filter == null || filter == "" || typeof filter == 'undefined')
        return;
    if (async == null)
        async = false;
    var data = { filter: filter };
    $.ajax({
        dataType: 'json',
        contentType: 'application/json;',
        url: url,
        data: JSON.stringify(data),
        cache: false,
        async: false,
        type: 'DELETE',
        headers: {
            "X-DreamFactory-Application-Name": AppName,
            "X-DreamFactory-Session-Token": token
        },
        success: function (response) {
            if (typeof success !== 'undefined') {
                success(response);
            }
        },
        error: function (response) {
            var msg = "发生未知错误,但是服务器没有提供相关错误信息,请联系系统管理员!";
            if (response.content && response.content.data && response.content.data.error)
                msg = response.content.data.error[0].message;
            else if (response.responseText)
                msg = JSON.stringify(response.responseText);
            msg = msg.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&').replace(/&apos;/g, '\'');
            if (typeof error !== 'undefined' && error) {
                error(msg);
            }
        }
    });
}

2. [图片] 01.jpg    

网友评论