В настоящее время я создаю RESTful API с использованием пакетов Composer. Я уже нашел «luracast / restler», который является очень мощным пакетом для создания API.
Но я все еще ищу пакет для управления моей базой данных и системой аутентификации. Вот некоторые требования / особенности, которые я хотел бы видеть.
Менеджер баз данных:
(Напр.
array(
'table1' => array(
array(
'row1'=> 'value1',
'row2'=> 'value2'
),
array(
'row1'=> 'value3',
'row2'=> 'value4'
)
)
)
станет INSERT INTO table1 (‘row1’, ‘row2’) VALUES (‘value1’, ‘value2’), (‘value3’, ‘value4’)
)
Система аутентификации:
У кого-нибудь есть предложения?
Чтобы помочь вам с такими требованиями, мы создали шаблоны приложений рестлеров в restler / приложение пакет. Каждая ветка в этом имеет свой шаблон для разных вариантов использования, тот, который вам нужен, находится в красноречивый ветка.
Вы можете установить его, используя следующую команду composer
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
генерируется на основе структуры таблицы таблицы обратной связи
Комментарии в верхней части файла используются рестлером, чтобы понять, какие свойства предоставляет модель
/**
* 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: // локальный: 8000 / исследователь / и получайте удовольствие 🙂
(не pacakge), но вы можете попробовать люмен это легкий вес и может делать все эти вещи. вы также можете найти остальные пакеты api bootstrap, чтобы запустить ваше приложение