将整个数据库转换为RESTful API

时间:2016-08-10 14:17:40

标签: php mysql database rest laravel

我很难在我的Laravel APP中尝试将MySQL数据库转换为RESTful API。 我在github中找到了这个package

我试过了,

并遵循每条指令,这是我的设置

$args = array(
            'name' => 'cacti',
            'username' => 'username',
            'password' => '****',
            'server' => 'localhost',
            'port' => 3306,
            'type' => 'mysql',
            'table_blacklist' => array(),
            'column_blacklist' => array()
);

register_db_api( 'dataset-name', $args );

这是我在 register_db()

中的内容
function register_db( $name = 'cacti', $args = array() ) {

        $defaults = array(
            'name' => 'cacti',
            'username' => 'username',
            'password' => '****',
            'server' => 'localhost',
            'port' => 3306,
            'type' => 'mysql',
            'table_blacklist' => array(),
            'column_blacklist' => array(),
            'ttl' => $this->ttl
        );

        $args = shortcode_atts( $defaults, $args );
        $name = $this->slugify( $name );

        $this->dbs[$name] = (object) $args;

    }

我一直在

  

必须选择数据库

我检查了我的数据库设置,我使用了相同的MySQL Workbench设置,我可以登录并查看我的数据库。

我错过了什么吗?

如果有人在遇到同样的问题,请告诉我你是如何解决它的。

另外,我对任何可以帮助我将数据库转换为RESTful API的新建议持开放态度。

如何实现这样的目标?

任何提示/帮助都将非常感谢!

2 个答案:

答案 0 :(得分:1)

使用您的示例时:

$args = array(
            'name' => 'cacti',
            'username' => 'username',
            'password' => '****',
            'server' => 'localhost',
            'port' => 3306,
            'type' => 'mysql',
            'table_blacklist' => array(),
            'column_blacklist' => array()
);

register_db_api( 'dataset-name', $args );

您必须使用网址:

/dataset-name/table-name

dataset-name不必像其他人所说的那样匹配实际的数据库名称。这个名称实际上是数据集名称,可以是您想要的任何名称。

旁注;请不要使用此软件包,因为它在代码中都很糟糕,似乎没有自动化测试。

答案 1 :(得分:0)

我终于在Laravel内自己做了。

#1 - 路线

Route::get('api/psql/{table_name}', 'ApiController@psql');

#2 - 控制器

 public function psql($table_name){
    $object = DB::table($table_name)->get();
    return $object;
}

#3 - 将其称为

http://localhost:8888/api/psql/users

结果

[
{
"id": 2005,
"account_id": "2005",
"email": "test@b",
"fb_email": "",
"tw_email": "",
"created_at": "2016-08-09 11:19:30",
"updated_at": "2016-08-09 11:19:30",
"fb_access_token": "",
"fb_profile_id": "",
"fb_page_id": "",
"fb_username": "",
"auto_provisioning": null,
"service_plan": null
},
{
"id": 2004,
"account_id": "2004",
"email": "test@outlook.com2",
"fb_email": "",
"tw_email": "",
"created_at": "2016-08-08 11:39:50",
"updated_at": "2016-08-09 14:02:55",
"fb_access_token": "",
"fb_profile_id": "",
"fb_page_id": "",
"fb_username": "",
"auto_provisioning": "1",
"service_plan": "Blast"
}
]