2017-01-27 15 views
1

私はAPIを構築するのが初めてです。私はMVCフレームワークを使用して最初のものを作った:codeigniter、chris kacerguis rest implementation。同じアプリケーション内にAPIと管理者がありません

私はこのフレームワークがAPIの目的のためだけに「スリム」ではないと信じているため、これが最善の策だとは思えません。

3人でApiのサービスを利用できるように、モバイルアプリ、管理者、ウェブサイトを計画しています。

API、ウェブサイト、および管理者を同じプロジェクトに置くことは悪い考えですか?長所と短所は何ですか?または最高のアーキテクチャアプローチ?

は、そうでなければ私が持っています:APIとWebサイトと管理のためのもう一つのCodeIgniterのプロジェクトの一つCodeIgniterのプロジェクト

おかげ

+0

DoctrineのようなORMを使用していますか? – mboullouz

答えて

0
あなたは、あなたのプロジェクトを整理し、同じプロジェクトを使用するために、「コントローラ」フォルダ内にフォルダを作成することができます

/env設定:

controllers/Home.php 
controllers/api/MyApi.php 
controllers/admin/Admin.php 

編集:モデルとライブラリも共有します。

0

私のプロジェクトでは、RESTとAPIの2種類のコントローラーを実現しました。 Admin js guiはRESTで動作し、他の世界ではAPIを使用しています。 symfonyの弟、silexフレームワークで簡単に実行できます。

0

ビジネスモデル用に1つのプロジェクトを作成するだけで済むようにREST APIを構築する目的。これにより、任意のプラットフォーム上の任意の数のアプリケーションを構築することができます。異なる方法でAPIを使用する必要があります。これは本質的に、ユーザインタフェースをビジネスロジックから分離/分離し、逆もまた同様である。

REST API用に別々のプロジェクトを作成する必要があります。また、各UIプロジェクトは別々のプロジェクトにする必要があります。これにより、APIシグネチャが同じであれば、他のプロジェクトを壊さずに、いずれかのプロジェクトで基礎となるコード、言語、プラットフォームを変更することができます。

例えば、Codeignitorを使用して作成したWebサイトのライブバージョンを作成し、AngularJSを使用して別のseptateプロジェクトを開発することができます。 AngularJSプロジェクトが完了したら、必要に応じて他のプロジェクトを使用できるように、プロジェクトをサーバー上に置き換える(またはまったく新しいWebサイトやサーバーを作成する)だけです。また、APIを別のプラットフォーム、言語、データベースに移動して、開発し、実装をスワップして、API署名を変更していないと仮定してUIプロジェクトを変更しないようにすることもできます。

+0

あなたの管理アプリケーションがあなたのクライアントのウェブサイト/アプリケーションと大きく異なる場合を除き、ユーザにロールを割り当て、ユーザロールに基づいてAPIからのデータを表示/要求してください。 – Matt

関連する問題