2016-12-03 98 views

回答

3

API调用和一个普通的HTML应用程序之间的差别基本上对响应,通常是你的控制器,视图()回应,这样他们就可以被渲染:

/// 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(); 

你要想想你的应用程序架构的另一件事是路线,从API区分网站,我通常创建我的终点作为

/api/books/1 

而不是

/books/1 

这是在您的路线

Route::get('/api/books/{id}', '[email protected]'); 

你应该阅读一些关于API创建过,因为API架构是很辛苦,终点变得混乱实在是快,容易,这是一个很好的书上的API https://leanpub.com/build-apis-you-wont-hate

+0

感谢您@Antonio你的答案您的回复现在我正在浏览器的url中获得json响应输入(localhost:8000/api/books/1)。但没有得到邮递员使用POST(本地主机:8000/api /书籍/ 1)的反应,它显示** 405方法不允许** 405方法不允许 当我使用GET它说**好(200) **但不显示了JSON – Suul

+0

web.php(路由文件) '路线::得到( '/',函数(){ 回报视图( '欢迎'); });' '验证: :routes();' 'Route :: get('/ home','HomeController @ index'); Route :: resource('books','BookController');' 'Route :: get('/ api/books/{id}','BookController @ show');' 'Auth :: routes ();' '路线::得到( '/家', '的HomeController @指数');' – Suul

+0

BookController的 '公共功能显示($ ID) {$ 书=书::所有(); return response() - > json($ books); } – Suul