我正在尝试为我的应用创建一个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.
答案 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前缀。
:localhost:8000/api/yoururl
:localhost/yoururl
答案 3 :(得分:1)
api中的所有路由都具有前缀路径/api
(默认情况下)。因此,在您的情况下,您应该通过以下方式访问它:http://YOURAPPURL/api/cars
您可能需要查看App\Providers\RouteServiceProvider@mapApiRoutes
以获取更多信息。