【问题标题】:How to create Api of REST full web Services using Laravel 5.3如何使用 Laravel 5.3 创建 REST 完整 Web 服务的 Api
【发布时间】:2017-04-18 07:44:48
【问题描述】:

我已经在 this tutorial 之后在 XAMPP 中使用 laravel 5.3 创建了 CRUD 应用程序,现在我必须创建这个 CRUD 应用程序的 RESTful API,以便能够从 android 应用程序执行 CRUD 操作。 任何帮助的人提前谢谢

【问题讨论】:

    标签: android laravel rest api


    【解决方案1】:

    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

    【讨论】:

    • 感谢您的回复@Antonio,您的回答非常有帮助,现在我在浏览器的 url 中输入了 json 响应类型( localhost:8000/api/books/1 )。但使用 POST (localhost:8000/api/books/1) 在邮递员中没有得到响应。它显示 ** 405 method not allowed **405 method not allowed photos.google.com/album/…" width="100" height ="100"> 当我使用 GET 它说 **ok (200) ** 但不显示 json
    • web.php(路由文件)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); }
    • 删除 auth::routes() 和中间件现在我使用 get 方法获得 Json 响应,但如何使用其他方法有什么 routs 请帮助
    • 运行php artisan route:list,你应该会看到你所有的路线
    猜你喜欢
    • 2018-07-09
    • 2015-08-02
    • 2011-08-29
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 2018-07-30
    相关资源
    最近更新 更多