如何使用Laravel 5.3创建REST完整Web服务的Api

Suu*_*uul 1 api rest android laravel

我已经按照本教程在XAMPP中使用laravel 5.3创建了CRUD应用程序,现在我必须创建此CRUD应用程序的RESTful API,以便能够从android应用程序执行CRUD操作。任何帮助的人提前谢谢

Ant*_*iro 5

API调用和普通HTML应用程序之间的区别主要在于响应,通常您的控制器使用views()进行响应,因此可以呈现它们:

/// Get the data
$books=Book::all();

/// HTML response
return view('books.index',compact('books'));
Run Code Online (Sandbox Code Playgroud)

一个API通常以JSON响应,这在Laravel中就像在做一样简单

/// Get the data
$books=Book::all();

/// JSON response
return response()->json($books);
Run Code Online (Sandbox Code Playgroud)

或简单到

return Book::all();
Run Code Online (Sandbox Code Playgroud)

要么

return Book::all()->toJson();
Run Code Online (Sandbox Code Playgroud)

在应用程序体系结构中,您还需要考虑的另一件事是路由,以区分Web与api,我通常将端点创建为

/api/books/1
Run Code Online (Sandbox Code Playgroud)

代替

/books/1
Run Code Online (Sandbox Code Playgroud)

这是在您的路线中完成的

Route::get('/api/books/{id}', 'BookController@show');
Run Code Online (Sandbox Code Playgroud)

您还应该阅读一些有关API创建的知识,因为API架构很困难,端点会变得又快又容易杂乱,这是一本关于API的不错的书https://leanpub.com/build-apis-you-wont-hate