目前我正在使用Composer软件包创建RESTful API。我已经找到了“luracast / restler”,这是一个非常强大的包来创建API。
但我仍然在寻找一个管理我的数据库和身份验证系统的软件包。以下是我希望看到的一些要求/功能。
数据库管理员:
(来自
a
将成为INSERT INTO table1('row1','row2')VALUES('value1','value2'),('value3','value4') )
身份验证系统:
有人有任何建议吗?
答案 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/并享受乐趣:)
答案 1 :(得分:0)
(不是pacakge)但你可以尝试Lumen它重量轻,可以做所有这些事情。你也可以找到rest api bootstrap软件包来启动你的应用程序