2016-07-12 4 views
0

私はAPIを構築していますが、自分のWebアプリケーションでAPIのモデルを再利用したいという状況に陥っています。私はの出力に基づいてモデルを作成していますWebアプリケーションでwebappでapiからモデルを再利用する

[クエリ] <> [Webアプリケーション] <> [モデル] <> [API] <> [モデル] <> [DB]

API。 APIでは、データベースの出力に基づいてモデルを作成しています。 どちらのモデルも同じです。

モデルをコピー/貼り付けせずにこれを正しく行う方法はありますか? 同じモデルを使用しないようにする方法はありますか?

EDIT: 私は、PHP-APIとPHP-Frontendを使用しています。 PHP-APIとPHP-Frontendの両方のモデルが同じです。

+0

今私はその質問を理解していません。両方の(分離した)システムでPHPファイルを再利用できるかどうか尋ねていますか?それだけでライブラリ/パッケージを作り、それを両側で使っているのではないのですか? – Erik

答えて

0

API内でモデルデータを応答として返すサービスを作成することができます。そうすれば、単純なコンバーターを構築して、PHPをバックエンドのJSONやその他のデータ構造形式に変更して送信することができます。

実際のモデルのコピーは1つしかなく、フロントエンドが使用するモデルを自動的に生成します。

詳しく説明するために非常に単純な例:

class Backend_Book { 
    public $title; 
    public $author;  
} 

class Backend_Recipe { 
    public $name; 
    public $ingredients; 
    public $steps; 
} 

は、あなたのAPIに追加する:あなたのフロントエンドから

コール:

$http.get('your/api/domain').then(function(response) { 
    domain = response; 
}); 

をそしてアイデアは、「その応答であります"このようなものになります:

これで、フロントエンドに、バックエンドで使用されているドメインのコピーがあるので、更新する必要はありません。明らかにこれは非常にの基本的な例ですが、必要に応じて多くの情報をドメインモデルに追加できますが、基本的な考え方はAPIのユーザーに独自のドメインを提供することです。

+0

私はあなたが何を意味するか分からないのですか? APIはデータを含むJSON文字列を返し、webappはJSON文字列を新しいモデルに変換します。 –

+0

これは役に立ちますか? – Erik

+0

申し訳ありませんが、PHP-APIとJSフロントエンドがあります。私が意味するのは、PHP-APIとPHPフロントエンドです。私のPHP-APIのモデルはPHP-Frontendと同じです。 –

関連する問題