【发布时间】:2017-04-18 07:44:48
【问题描述】:
我已经在 this tutorial 之后在 XAMPP 中使用 laravel 5.3 创建了 CRUD 应用程序,现在我必须创建这个 CRUD 应用程序的 RESTful API,以便能够从 android 应用程序执行 CRUD 操作。 任何帮助的人提前谢谢
【问题讨论】:
我已经在 this tutorial 之后在 XAMPP 中使用 laravel 5.3 创建了 CRUD 应用程序,现在我必须创建这个 CRUD 应用程序的 RESTful API,以便能够从 android 应用程序执行 CRUD 操作。 任何帮助的人提前谢谢
【问题讨论】:
API 调用和普通 HTML 应用的区别主要在于响应,通常你的控制器响应 view(),所以它们可以被渲染:
/// Get the data
$books=Book::all();
/// HTML response
return view('books.index',compact('books'));
API 通常使用 JSON 响应,这在 Laravel 中就像做一样简单
/// Get the data
$books=Book::all();
/// JSON response
return response()->json($books);
或者简单到
return Book::all();
或
return Book::all()->toJson();
在你的应用架构中你必须考虑的另一件事是路由,为了区分 web 和 api,我通常将端点创建为
/api/books/1
代替
/books/1
这是在你的路线中完成的
Route::get('/api/books/{id}', 'BookController@show');
您也应该阅读一些有关 API 创建的内容,因为 API 架构很难,端点变得非常快速和容易,这是一本关于 API 的好书https://leanpub.com/build-apis-you-wont-hate
【讨论】:
Route::get('/', function () { return view('welcome'); });Auth::routes();Route::get('/home', 'HomeController@index'); Route::resource('books','BookController');Route::get('/api/books/{id}', 'BookController@show');Auth::routes();Route::get('/home', 'HomeController@index');
public function show($id) { $books=Book::all(); return response()->json($books); }
php artisan route:list,你应该会看到你所有的路线