Какая система аутентификации & amp; менеджер баз данных мне следует использовать при создании RESTful API с помощью Restler?

В настоящее время я создаю RESTful API с использованием пакетов Composer. Я уже нашел «luracast / restler», который является очень мощным пакетом для создания API.

Но я все еще ищу пакет для управления моей базой данных и системой аутентификации. Вот некоторые требования / особенности, которые я хотел бы видеть.

Менеджер баз данных:

  • создание структур базы данных / обновление структур базы данных из конфигурации
    файлы
  • базовый конструктор SQL-запросов
  • Массив в базу данных

(Напр.

array(
'table1' => array(
array(
'row1'=> 'value1',
'row2'=> 'value2'
),
array(
'row1'=> 'value3',
'row2'=> 'value4'
)
)
)

станет INSERT INTO table1 (‘row1’, ‘row2’) VALUES (‘value1’, ‘value2’), (‘value3’, ‘value4’)
)

Система аутентификации:

  • должен работать с менеджером баз данных
  • простая и простая аутентификация (автоматически сгенерированный ключ API)
  • система управления учетными записями (возможно, отдельная система / API)

У кого-нибудь есть предложения?

0

Решение

Чтобы помочь вам с такими требованиями, мы создали шаблоны приложений рестлеров в 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 / исследователь / и получайте удовольствие 🙂

Restler API Explorer

2

Другие решения

(не pacakge), но вы можете попробовать люмен это легкий вес и может делать все эти вещи. вы также можете найти остальные пакеты api bootstrap, чтобы запустить ваше приложение

0

По вопросам рекламы [email protected]