laravel 5.5资源restful API

时间:2018-01-24 07:36:40

标签: php laravel rest laravel-5 laravel-5.5

我正在尝试为我的应用创建一个API,以便我可以共享端点并将一个应用程序作为具有业务逻辑的核心应用程序,另一个可以与公开的端点连接以将该功能用作服务。

我尝试点击端点时收到错误。

以下是我的路线/ api.php

<?php

use App\PostModell;
use App\Http\Resources\PostModellResource;
use Illuminate\Http\Request;

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});
Route::get( '/cars',function(){
    return new PostModellResource(PostModell::all());
}); 

我的资源类看起来像

class PostModellResource extends Resource
{
         public function toArray($request)
    {
        return
        [
            'id'=>$this->id,
            'title'=>$this->title,
            'body'=>$this->body,
            'created_at' => $this->created_at,
            'updated_at' => $this->updated_at,

        ];          
    }

错误是

Sorry, the page you are looking for could not be found.

4 个答案:

答案 0 :(得分:3)

由于api路由中的路由,请使用此URI:

https://example.com/api/cars

另外,正如我在我的最佳实践回顾you shouldn't put the logic into routes中所示,改为在控制器中移动所有逻辑。

答案 1 :(得分:3)

使用model.serpData.find({},(err, rows)=>{ if(err){ console.log(err); } else{ async.each(rows,(row, callback)=>{ async.each(row.data[0].organic,(url, innerCallback)=>{ model.urlCollection.findOneAndUpdate({url:url.result_url},{$set:{url:url.result_url},$inc:{count:1}},{upsert: true},(err)=>{ innerCallback(err); }); },(err)=>{ callback(err); }); },(err)=>{ console.log('all urls are collected'); }); } 前缀 -

api

要转换资源集合,您需要使用collection()方法 -

127.0.0.1:8000/api/cars 

答案 2 :(得分:1)

如果您使用的是Laravel api.php,那么您必须使用api前缀,

或者如果你使用流明web.php,那么你可以直接调用它,或者你可以根据你的要求定义api前缀。

Laravel中的

localhost:8000/api/yoururl

在卢门

localhost/yoururl

答案 3 :(得分:1)

api中的所有路由都具有前缀路径/api(默认情况下)。因此,在您的情况下,您应该通过以下方式访问它:http://YOURAPPURL/api/cars

您可能需要查看App\Providers\RouteServiceProvider@mapApiRoutes以获取更多信息。