如何在Laravel中使用api替换所有数据库功能

时间:2019-01-16 21:01:40

标签: php laravel

我是Laravel的新手,并负责重新设计现有应用程序。当前,我最大的障碍是,将通过外部API访问所有数据,而不是数据库。我已经以这种方式创建了其他几个应用程序,并且非常舒适地使用外部API。但是为了不完全重写这个新项目,我需要找出一种用新API替换旧数据库的方法。

我发现https://github.com/jenssegers/model似乎具有我需要的功能,该功能可以将Eloquent(似乎全部与数据库交互有关)替换为模型,该模型可以转换API使用量,从而能够使用Eloquent功能,例如first,last, ,等等。

旧数据库有一个名为“ StaticPages”的表,因此我创建了一个扩展jenssegers / model的新模型:

<?php

namespace App;

// use Illuminate\Database\Eloquent\Model;
use \Jenssegers\Model\Model as EloquentLike;

class StaticPage extends EloquentLike
{
    protected $hidden = [];
    protected $casts = [
        'sampleId' => 'string',
        'ID' => 'string',
        'CreateDate' => 'datetime',
        'UpdateDate' => 'datetime',
        'Status' => 'string',
        'Page' => 'string',
        'SiteVar' => 'string',
        'Content' => 'string',

    ];
    protected $guarded = [
        'sampleId',
        'ID',
    ];
    protected $fillable = [
        'CreateDate',
        'UpdateDate',
        'Status',
        'Page',
        'SiteVar',
        'Content',
    ];


}

但是现在我不确定如何将数据从外部API提取到此模型中(它是处理程序,存储库还是什么)。尽管来自API的数据与数据库具有所有相同的字段,但它不再是名为“ StaticPages”的“表”,而现在是名为“ 3827”的数据存储。

因此,我试图进行重构,以便可以获取现有呼叫:

$sp = StaticPage::where('group', '=', $group)->orderBy('page', 'asc')->paginate(20);

要返回相同的记录,它会从先前的数据库查询API的世界。

有人知道我是否可以使用任何资源来解决这个问题。当我在Laravel中搜索如何将API用作数据库时,我能找到大量有关如何使用Laravel创建API的信息,但关于如何用API替换数据库的一切(除了可能的话)。

0 个答案:

没有答案