[laravel]lumenを使ったAPIの構築方法

WBOY
リリース: 2016-06-20 12:27:14
オリジナル
1195 人が閲覧しました

API とは

API (アプリケーション プログラミング インターフェイス、アプリケーション プログラミング インターフェイス) は、いくつかの事前定義された関数であり、その目的は、アプリケーションと開発者に、以下に基づいた特定のソフトウェアを提供することです。または、ソース コードにアクセスしたり、内部動作の詳細を理解したりすることなく、一連のルーチンにアクセスできるハードウェアの機能。

ルーメンとは

ルーメンは、Laravel コンポーネントから構築されたマイクロフレームワークであり、Laravel によって公式に保守されています。上記から分かるように、Lumen は多くの設定やカスタマイズ可能なオプションを持たない Laravel です。つまり、Laravelを先に理解しておけば、Laravelの記事がブログ内にたくさんあるので、検索して学ぶことができます。

lumen を使用して API を開発する

まず、lumen を構成し、必要な JWT、dingo、およびその他のコンポーネントを追加します。ただし、私たちのプロジェクトではこれらはすべて設定されているため、心配する必要はありません。

ルートを構築します

プロジェクト ディレクトリ app/Http/routes.php を開きます

<?php$api = app('Dingo\Api\Routing\Router');  $api->version('v1.0',  ['namespace' => 'App\Http\V1_0\Controllers'],  function ($api) { //物品分类列表$api->get('category',  'CategoryController@index'); //验证项目是否运行成功$api->get('test', 'ApitestController@test'); // 需提供 JWT$api->group(['middleware' => 'api.auth', 'providers' => 'jwt'], function ($api) { });}); 
ログイン後にコピー

上記は、最初に表示されるインターフェイスです多くの人はそれが何を意味するのか理解できないかもしれません。ルーメンのドキュメントを見ると、上記と同じではありません。実際、上記は lumen のネイティブ構文ではなく、dingo API を使用しています。 Wiki ドキュメントについては、次のリンクにアクセスしてください。ここで簡単に紹介してみます。

$api->get('test', 'ApitestController@test');//访问本地地址/api/test,调用的方法是 ApitestController 的 test 方法 
ログイン後にコピー

この中に

$api->group(['middleware' => 'api.auth', 'providers' => 'jwt'], function ($api) { }); 
ログイン後にコピー

書かれたルートは JWT 検証に合格する必要があります。つまり、ログを記録する必要があります。トークンを取得します。トークンのメカニズムについては、JWT 公式 Web サイトにアクセスするか、関連記事を検索してください。 WIKI では、トークンの取得方法と解析方法を学ぶことができます。もちろん、タスクにログインが必要ない場合はスキップできます。

ルーティングは RESTful URL 仕様に従う必要があります。この記事を読むことができます 休息URL

最も一般的に使用されるのはlaravelリソースルーティングです

コントローラー

前のステップで述べたことを覚えておいてください どのルートそのルートで ApitestController のテストメソッドが呼び出されます。次に、このコントローラーを作成します。

プロジェクト ディレクトリを開きます。

app/Http/V1_0/Controllers プロジェクトのコントローラーはすべて、必要に応じて新しい ApitestController を作成します。 >

<?phpnamespace App\Http\v1_0\Controllers; class ApiTestController extends ApiController{public function test(){return $this->response()->array(['api 项目运行成功']);}} 
ログイン後にコピー

ここにはテスト メソッドがあります。これは、前のステップのルーティングでアクセスしたメソッドです。つまり、ローカル アドレス /api/test にアクセスすると、「API プロジェクトは正常に実行されました」と応答します。この時点で、API が実行するプロセスは基本的に完了しました。しかし、多くの学生はデータベースについて尋ねるかもしれません? 実際、データベースはこの API にデータを提供するだけです。

データベース

ここでは、データベースのデータをコントローラーでどのように使用できるかを示します。まず、新しい移行を作成します。この記事を参照してください。場合によってはデータを入力する必要があります。皆さん

はこの記事を参照してください

それからモデルを構築する必要があります。 users テーブルがあるとします。

app/Entity フォルダーを開き、新しいファイル User.php を作成します

<?phpnamespace App\Entity; use Illuminate\Database\Eloquent\Model; class User extends Model {protected $hidden =  ['password'];protected $fillable = ['nation_id', 'mobile'];} 
ログイン後にコピー

$fillable はバッチ操作を許可するホワイトリストです。 、公式ウェブサイトをチェックアウトすることができます。次に、users テーブルを使用します。メソッドは

public function test(){$users = User::all();return $this->response->collection($users, new UserTransformer);} 
ログイン後にコピー

前に use AppEntityUser を追加します。ここでは

Transformer を使用し、新しいファイルを作成する必要があります。この記事の記事を読んでください。これを構築したくない場合は、$users を直接返すことができます。この方法では、接続がアクセスされたときに users テーブルのデータが返されます。詳細については、公式ドキュメントのデータベースのセクションをご覧ください。多くの場合、便宜上、データベース層を分離します。この記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート