DreamFactory连接MariaDB生成API接口教程

前言

当我们安装好DreamFactory后,DreamFactory会自动连接到安装DreamFactory时一起安装的MariaDB中,并且生成bitnami_dreamfactory和bitnami_df这两个数据库,同时把DreamFactory的初始数据导入到bitnami_dreamfactory中,这个数据库就是用来存储DreamFactory的配置数据的。然后只要我们把自己的数据导入到这个MariaDB中,或者直接在这个MariaDB中创建一个数据库用来存放我们自己的数据。然后通过配置DreamFactory,让它连接到我们的数据库就可以自动生成接口了。

注册管理员账户

安装好DreamFactory,在浏览器输入服务器地址访问该服务器(如果是本机安装的DreamFactory就是访问http://localhost),会出现注册管理员账户界面,这个管理员账户就是用来管理你的DreamFactory的。

控制面板

注册完毕后登录,就会进入DreamFactory的后台控制面板,在这里,你可以管理你的DreamFactory,绝大多数配置都可以在控制面板完成,并且自动存入bitnami_dreamfactory数据库。
控制面板界面
控制面板目前包括以下内容:

  • Homes:提供DreamFactory的教程,文档,支持平台,资源列表,开源项目等链接。
  • Apps:生成ApiKey,DreamFactory生成的接口是需要加api_key参数才能访问的,在这里可以通过点击左侧的Create按钮来创建一个后端app,生成ApiKey,从而使用该ApiKey获取接口数据。
  • Admins:管理DreamFactory的管理员账户。安装完毕时要求注册的管理员账户可以在这里看到,同时也可以在这里创建一个新的管理员账户。
  • User:类似于管理员账户,这是用来管理普通账户的,普通账户也可以登录DreamFactory,但是具体权限取决于该用户所属的Roles,如果某个user的Roles权限跟管理员账户的权限一样高,那么该user就相当于是一个管理员账户,通常情况下,user的权限远远低于Admins。可以将Admins和user的关系理解为数据库中的root用户和普通用户的关系。
  • Roles:管理不同Roles所拥有的权限
  • Service:DreamFactory的核心功能,只有先创建好Service,在Service的配置中连接该某个数据库,才能使DreamFactory连接到该数据库。可以说一个Service就代表一个数据库。
  • Schema:在这里可以查到任何一个已经连接的数据库的表结构。
  • Data: 在这里可以查到任何一个已经连接的数据库的表。
  • Files:管理通过接口上传的文件,已经导出的文件等。
  • Scripts:可以通过php、Nodejs、V8js、python来写一些脚本来做一些处理,如从某个数据库中取出某数据后将其做一遍字符串处理再去生成接口。
  • APIdocs:用来调试生成的接口,帮助我们定义接口。
  • Config:一些额外的配置,比如CORS,系统环境,邮件服务等。
  • Packages:在这里可以导入或者导出部署好的DreamFactory配置信息。

生成自己的接口

  1. 将自己的数据导入到MariaDB中,这一步可以通过远程连接服务器的数据库进行导入,也可以直接在DreamFactory安装目录下/mysql/bin中启动mysql,进入mysql控制台使用sql语句导入。

  2. 导入数据库后,进入DreamFactory控制台,进入Config标签下,点击左侧CORS按钮配置CORS,配置CORS,配置选项如图所示:

  3. 然后进入Roles标签下,创建一个新的Role,作为没有访问该接口的默认角色。
    创建Role:
    创建Role
    然后点击Access按钮配置Role权限:
    配置Role权限

  4. 接下来就可以创建一个接口实例了,进入Apps标签下,创建一个app,配置如图,其中Default Roles选择刚刚创建的Role:

    创建完成后,就能在apps标签下看到刚刚创建的app及其apikey,该apikey将用于访问接口。

    这里由于我们上一步创建的Role的权限是包含全部的,因此,生成的API即使没有添加token,依然能访问到。如果希望我们的API不登录就无法访问,那么需要将Role的权限设置为最小即不添加任何Access

  5. 接下来连接我们的数据库。进入Service标签,创建一个Service,MariaDB同样选择Database->MySQL类型:

    然后点击上面的Service下的Config按钮,配置Service,配置如图:

    保存后即可。

  6. 这样我们就可以通过HTTP URL的方式访问我们的数据库,并且能能到json或者xml、csv类型的数据了。进入API Docs标签下,找到我们数据库名称所在的一栏,点击show

    这里提供了对该数据库中的Schema、table、等信息的增删改查方式,比如想要通过get方式获得某个数据表中的数据,可以选择找到对应的栏目/你的service名称/table/{table_name},进去后在table_name一栏输入你想要查找的表的名称,然后点击下面的try out按钮,就能看到返回该表的json数据了,并且会在下面自动生成查询该数据的URL,你可以将该URL复制到浏览器中,然后在后面加上URL参数api_key=你创建的app的apikey就可以获得同样的数据。下图列出了一些常用字段的用途:

    总而言之,所谓生成接口,其实是通过这样一个控制面板来实现对数据库的增删改查。

  7. 在API docs标签下,除了能调试自己的数据库的接口,还能够调试注册登录,文件上传等功能的接口,具体用法本文不赘述了,有兴趣可以查看官方文档。

更多

##(本文为绝世盗草人原创,转载请声明出处:http://iamding.cn)