ホームページ  >  記事  >  PHPフレームワーク  >  Laravel は、プロフェッショナルな RestfulAPI を単純に書くことを教えます

Laravel は、プロフェッショナルな RestfulAPI を単純に書くことを教えます

藏色散人
藏色散人転載
2020-10-27 13:45:462668ブラウズ

次のチュートリアルのコラムで紹介します。 Laravel でプロフェッショナルな RestfulAPI を書く方法. 困っている友人の役に立てば幸いです!

#Laravel は、プロ仕様の URL を簡単に書く方法を教えます

はじめに

データベースに接続し、移行機能を使用してデータベース テーブル構造を作成した後、Seeder を使用して最初にデータベースのダミー データを入力しました。これらの準備が整ったら、

外部データ サポートを提供するリソース インターフェイス関数の構築を検討できます。

コード時間

自分が設計した API インターフェイスとデータは、以前の API インターフェイスとデータと異なると感じますか?他の大手メーカーのものですか? 提供されているドキュメントのデータ構造が異なります。 はあまりプロフェッショナルに見えませんか、またはあまり標準的ではありませんか?大昌にはまだ何学年差があるでしょうか?

Laravel は、ベストプラクティスに従い、本格的な URL を作成できるシンプルで標準的な方法を提供します。

たとえば、リソースの場合は、Restful スタイルを使用して URL ルーティング アドレスを宣言します。

最初の列は http リクエスト メソッドで、2 番目の列は列はlaravelルーティングルールの宣言、3列目は対応するコントローラーメソッドです。上記のリソース リストには、追加、削除、変更、確認のすべての操作が含まれており、非常に包括的であると言えます。

上記のコントローラー メソッドをすばやく生成するにはどうすればよいですか?コマンドラインで実行するには、laravel スキャフォールディング命令を使用します。

php artisan make:controller EventsController --resource

–resource

オプションを使用して、ターゲット コントローラーで上記のメソッドをすべて生成します。

生成されたファイルは app/Http/Controllers/EventsController.php にあり、初期化内容は次のとおりです:

これらの方法は真実であり、箱から出してすぐに機能します。

それでは、上記のルーティング エントリを 1 つずつ手動で宣言する必要があるのでしょうか?なんという悪夢でしょう。幸いなことに、laravel がそれを行ってくれます。

Route

クラスの

resource

メソッドを使用してリソースを登録するだけです。

Route::resource('events', 'EventsController');
リソース ルーティング メソッドを使用し、次のように指定するだけです。ルート名と対応するコントローラー メソッド。これらのルートとコントローラー メソッドを面倒に記述する必要はありません。 表示を容易にするために、データをビュー ファイルにレンダリングします。最初に

resources/views/events/index.blade.php

ビュー ファイルを作成し、デフォルトのレイアウト ファイルを使用して、次のコード内:

@extends('layouts.app')
@section('content')
    <h1>Events</h1>
@endsection

app/Http/Controllers/EventsController ファイルを開き、

index

メソッドを変更します:

public function index(){
    return view('events.index');}
可能な限りご覧のとおり、上記のメソッドにはデータベースがありません。データ対話のために、以下のモデルを導入し、ビューにレンダリングします。コントローラーの先頭に次の参照を追加します。
use App\Event;

index

メソッド内に次のコードを入力します。

$events = Event::all();return view('events.index')->with('events', $events);

上記のデータを使用して、単純にビューにコンテンツを出力するには、ビュー ファイルを次のように変更します。

<h1>Events</h1>
        @forelse ($events as $event)         
  • {{ $event->name }}
  •     @empty        
  • No events found!
  •     @endforelse
テンプレート ファイル

@forelse

このメソッドは、

$events

変数に少なくともトラバーサル用の 1 つの要素、そうでない場合は出力@emptyブロックの内容。ブラウザでルーティングアドレスにアクセスすると、おおよそ以下のような内容が出力されます。 Faker によって入力された偽のデータにより、次のようになります:

データの量が大きすぎる場合、このページにはおそらく時間がかかりますロードに時間がかかります。リストは長いです。したがって、ページングが必要です。ページング関数を追加するには、おそらく次のような SQL ステートメントが使用されます:

select id, name from events order by id asc limit 10 offset 0;
select id, name from events order by id asc limit 10 offset 10;
コントローラーでページング関数を使用するには、モデル上で paginate

メソッドを呼び出すだけです:

$events = Events::paginate(10);

Every ページは 10 エントリに設定されます。ビュー内には前ページ、次ページ、ページ番号のナビゲーション バーが必要ですが、手動で記述する必要はありません。 Laravel は実際には、paginate メソッドによって返される

Illuminate\Pagination\LengthAwarePaginator

クラスを継承します。この行をビューに追加するだけで十分です:

{!! $events->links() !!}
generatedバーは次のとおりです。

#最後に書いてあります

この記事では、laravel データベースを埋めるために使用されるメソッドを簡単に紹介します。缶手動充填、

サードパーティのライブラリを使用してダミーデータを入力することもでき、効率が大幅に向上します。データが準備されて初めて、ビジネス ロジックとインターフェイスのドッキングについて話すことができます。このデータはアプリケーションの基礎にもなるため重要です。

この記事は、前章で説明したlaravelのデータベース移行機能の補足です。データベースの移行は比較的大規模な作業です。

特に運用環境に導入されたアプリケーション データベースの場合、移行を更新する必要がある場合は、起こり得る緊急事態に備えて訓練を実施する必要があります。 。

以上がLaravel は、プロフェッショナルな RestfulAPI を単純に書くことを教えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。