laravel如何寫(xiě)api

laravel作為一門(mén)流行的php框架,已經(jīng)成為了開(kāi)發(fā)人員寫(xiě)api的首選。通過(guò)laravel,你可以快速編寫(xiě)高質(zhì)量的api,其越來(lái)越受到企業(yè)級(jí)和個(gè)人開(kāi)發(fā)者的歡迎。

在這篇文章中,我們將探討如何使用Laravel編寫(xiě)API。我們將從以下幾個(gè)方面入手:構(gòu)建API、API路由、控制器和API測(cè)試。

構(gòu)建API

在構(gòu)建API時(shí),需要使用Laravel提供的內(nèi)置中間件和路由器。從Laravel 5.5開(kāi)始,框架內(nèi)置了API資源控制器(API Resource Controller)功能。這個(gè)特性使得開(kāi)發(fā)者可以更快的創(chuàng)建標(biāo)準(zhǔn)的REST API,并且?guī)椭_(kāi)發(fā)者維護(hù)代碼一致性。

如何使用資源控制器?首先,在命令行中執(zhí)行以下命令,新建一個(gè)控制器:

php artisan make:controller Api/PostController --api

這會(huì)創(chuàng)建一個(gè)名為PostController的API控制器,它將自動(dòng)繼承Laravel的內(nèi)置的ResourceController,并且包含所有的預(yù)定義的方法。這些方法包括:index、show、store、update和destroy。

API路由

在Laravel中,路由與控制器緊密耦合,因?yàn)槲覀冃枰诼酚芍卸x處理API請(qǐng)求的頂級(jí)控制器。

Route::prefix('api')->group(function () {     Route::resource('posts', 'ApiPostController'); });

這個(gè)路由定義了一個(gè)’/api/posts’的URL,用來(lái)操作Post模型的 CRUD 功能。

控制器

在資源控制器中,我們可以使用預(yù)定義的函數(shù)來(lái)處理常見(jiàn)的任務(wù)。例如,下面的代碼開(kāi)始創(chuàng)建并附加post文章的文件上傳,將文件從存儲(chǔ)庫(kù)中移動(dòng)到公共目錄中:

public function store(Request $request) {     $path = $request->file('photo')->store('public/photos');          $post = new Post;          $post->title = $request->input('title');     $post->description = $request->input('description');     $post->slug = str_slug($request->input('title'));     $post->photo = $path;          $post->save();          return new Resource($post); }

API測(cè)試

測(cè)試API是確保其功能正常工作的關(guān)鍵,請(qǐng)確保在編寫(xiě)API時(shí)編寫(xiě)測(cè)試用例。Laravel也內(nèi)置了框架測(cè)試工具來(lái)幫助您輕松地編寫(xiě)測(cè)試用例。

在為API編寫(xiě)測(cè)試時(shí),您可以使用發(fā)送HTTP請(qǐng)求并檢查響應(yīng)的方法來(lái)測(cè)試控制器。例如,下面的代碼測(cè)試控制器是否可以正確地獲取帖子的列表:

public function testPostIndex() {     $response = $this->json('GET', '/api/posts');          $response->assertStatus(200);     $response->assertJsonStructure([         'data' => [             '*' => [                 'id',                 'title',                 'description',                 'slug',                 'photo',                 'created_at',                 'updated_at'             ]         ]     ]); }

結(jié)論

在Laravel中,編寫(xiě)API非常容易。使用預(yù)定義的API控制器和內(nèi)置的路由器,您可以快速創(chuàng)建標(biāo)準(zhǔn)的REST API。使用Laravel的測(cè)試工具編寫(xiě)測(cè)試用例,檢查API功能是否正常工作。優(yōu)秀的文檔和社區(qū)支持,是讓Laravel成為開(kāi)發(fā)人員最受歡迎的框架之一的關(guān)鍵因素。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊15 分享