什么认证系统&我应该在使用Restler创建RESTful API时使用数据库管理器吗?

时间:2015-08-05 07:12:15

标签: php database api accountmanager restler

目前我正在使用Composer软件包创建RESTful API。我已经找到了“luracast / restler”,这是一个非常强大的包来创建API。

但我仍然在寻找一个管理我的数据库和身份验证系统的软件包。以下是我希望看到的一些要求/功能。

数据库管理员:

  • 从config创建数据库结构/更新数据库结构 文件
  • 基本SQL查询构建器
  • 数组到数据库

(来自

a

将成为INSERT INTO table1('row1','row2')VALUES('value1','value2'),('value3','value4') )

身份验证系统:

  • 必须使用数据库管理器
  • 简单易用的身份验证(自动生成的api密钥)
  • 帐户管理系统(可能是单独的系统/ API)

有人有任何建议吗?

2 个答案:

答案 0 :(得分:2)

为了帮助您满足此类要求,我们在restler/application包中创建了restler应用程序模板。其中的每个分支都有针对不同用例的不同模板,您需要的是eloquent分支。

您可以使用以下编辑器命令

安装它
composer create-project restler/application=dev-eloquent my_api

安装完成后,您可以进入目录

cd my_api

首先,您需要编辑数据库配置文件(app/config/database.php)。一旦确定了要使用的数据库(sqlite,mysql,postgres等),请更新连接下的相关信息。如果我想使用mysql和数据库名称是my_api,用户名是root,密码是test,我的配置看起来像

<?php

return array(
    'default' => 'mysql',
    'connections' => array(
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => '127.0.0.1',
            'database'  => 'my_api',
            'username'  => 'root',
            'password'  => 'test',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
    ),
);
  

注意: - 为清楚起见,我已从配置文件中删除了不相关的部分,您应将它们保存在文件中

配置数据库后,可以使用以下命令检查连接

php artisan migrate:install

Migration table created successfully.

接下来,您将创建一个用于创建新表的迁移文件,如何创建一个人们将留下反馈的API?

php artisan migrate:make --create=feedbacks create_feedbacks_table

Created Migration: 2015_08_05_120727_create_feedbacks_table
Generating optimized autoload files

编辑app/database/migrations/2015_08_05_120727_create_feedbacks_table.php文件以具有以下内容

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateFeedbacksTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('feedbacks', function(Blueprint $table)
        {
            $table->increments('id');
            $table->string('name');
            $table->string('email');
            $table->text('message');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('feedbacks');
    }

}

我们在这里创建包含姓名,电子邮件和反馈列的反馈表。接下来,我们将运行迁移工具,以便创建此表。

php artisan migrate

**************************************
*     Application In Production!     *
**************************************

Do you really wish to run this command? yes
Migrated: 2015_08_05_120727_create_feedbacks_table

现在我们可以使用以下命令生成模型类

php artisan model:make Feedback

Model created successfully.
Generating optimized autoload files

这里我们将模型名称指定为表名的单数形式。 app/models/Feedback.php是基于反馈表

的表结构生成的

restler使用文件顶部的注释来了解模型公开的属性

/**
 * Class Feedback
 *
 * @property-read  int    $id
 * @property       string $name
 * @property       string $email
 * @property       string $message
 * @property-read  string $created_at {@type date}
 * @property-read  string $updated_at {@type date}
 * 
 */

接下来,让我们使用以下内容创建app\controllers\Feedbacks.php

<?php

use Luracast\Restler\RestException;

class Feedbacks {
    /**
    * Get all feedbacks
    *
    * return array {@type Feedback}
    */
    public function index(){
        return Feedback::all();
    }

    public function get($id){
        if(!$feedback = Feedback::find($id)){
            throw new RestException(404, 'feedback not found');
        }
        return $feedback;
    }

    public function post(Feedback $feedback){
        $feedback->save();
        return $feedback;
    }

    public function delete($id){
        if(!$feedback = Feedback::find($id)){
            throw new RestException(404, 'feedback not found');
        }
        $feedback->delete();
        return ['success'=>true];
    }

}

接下来编辑public/index.php以添加以下行

$r->addApiClass('Feedbacks');

多数情况下,您可以使用

启动网络服务器
php artisan serve

Web app development server started on http://localhost:8000

将您的网络浏览器指向http://localhost:8000/explorer/并享受乐趣:)

Restler API Explorer

答案 1 :(得分:0)

(不是pacakge)但你可以尝试Lumen它重量轻,可以做所有这些事情。你也可以找到rest api bootstrap软件包来启动你的应用程序