API (アプリケーション プログラミング インターフェイス、アプリケーション プログラミング インターフェイス) は、いくつかの事前定義された関数であり、その目的は、アプリケーションと開発者に、以下に基づいた特定のソフトウェアを提供することです。または、ソース コードにアクセスしたり、内部動作の詳細を理解したりすることなく、一連のルーチンにアクセスできるハードウェアの機能。
ルーメンは、Laravel コンポーネントから構築されたマイクロフレームワークであり、Laravel によって公式に保守されています。上記から分かるように、Lumen は多くの設定やカスタマイズ可能なオプションを持たない Laravel です。つまり、Laravelを先に理解しておけば、Laravelの記事がブログ内にたくさんあるので、検索して学ぶことができます。
まず、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 项目运行成功']);}}
データベース
ここでは、データベースのデータをコントローラーでどのように使用できるかを示します。まず、新しい移行を作成します。この記事を参照してください。場合によってはデータを入力する必要があります。皆さん
はこの記事を参照してください
それからモデルを構築する必要があります。 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'];}
public function test(){$users = User::all();return $this->response->collection($users, new UserTransformer);}
前に use AppEntityUser を追加します。ここでは
Transformer を使用し、新しいファイルを作成する必要があります。この記事の記事を読んでください。これを構築したくない場合は、$users を直接返すことができます。この方法では、接続がアクセスされたときに users テーブルのデータが返されます。詳細については、公式ドキュメントのデータベースのセクションをご覧ください。多くの場合、便宜上、データベース層を分離します。この記事を参照してください。