RESTAPI和admin在同一个应用程序中

RESTAPI和admin在同一个应用程序中,rest,codeigniter,api,architecture,restful-architecture,Rest,Codeigniter,Api,Architecture,Restful Architecture,我是构建API的新手,我第一次使用MVC框架:codeigniter和chris kacerguis rest实现 我不确定这是否是最好的想法,因为我相信框架可能并没有那个么“轻薄”或者仅仅为了API的目的 我计划做一个移动应用程序,一个管理员和一个网站,这样三个人就可以使用Api的服务 将API、网站和管理员放在同一个项目上是个坏主意吗?赞成和反对的是什么?还是最好的架构方法 否则我将有:一个用于API的Codeigniter项目和另一个用于网站和管理员的Codeigniter项目 谢谢您可以

我是构建API的新手,我第一次使用MVC框架:codeigniter和chris kacerguis rest实现

我不确定这是否是最好的想法,因为我相信框架可能并没有那个么“轻薄”或者仅仅为了API的目的

我计划做一个移动应用程序,一个管理员和一个网站,这样三个人就可以使用Api的服务

将API、网站和管理员放在同一个项目上是个坏主意吗?赞成和反对的是什么?还是最好的架构方法

否则我将有:一个用于API的Codeigniter项目和另一个用于网站和管理员的Codeigniter项目

谢谢

您可以在“控制器”文件夹中创建文件夹来组织项目,并使用相同的项目/env配置:

controllers/Home.php  
controllers/api/MyApi.php 
controllers/admin/Admin.php
编辑:您也将共享模型和库。

您可以在“控制器”文件夹中创建文件夹来组织项目,并使用相同的项目/env配置:

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

编辑:您也将共享模型和库。

在我的项目中,我实现了两种类型的控制器—REST和API。AdminJSGUI使用REST,其他世界使用API。您只需使用symfony的弟弟silex framework就可以实现这一点。

在我的项目中,我实现了两种类型的控制器—REST和API。AdminJSGUI使用REST,其他世界使用API。您只需使用symfony的弟弟silex framework即可完成此任务。

构建REST API的目的是,您只需为您的业务模型构建一个项目。这允许您在任何平台上构建任意数量的应用程序,只需要您以不同的方式使用API。这实际上将用户界面与业务逻辑分离/分离,反之亦然

您应该为RESTAPI创建单独的项目,每个UI项目也应该是单独的项目。这允许您更改任何一个项目中的底层代码、语言和平台,而不破坏任何其他项目,只要API签名保持不变


例如,在使用AngularJS开发另一个septate项目时,您可以使用Codeignitor构建网站的实时版本。当您的AngularJS项目完成后,您只需在服务器上交换项目(或创建一个全新的网站或服务器),如果需要,仍然可以使用另一个。此外,您可能决定将API移动到不同的平台、语言或数据库,开发它并在完成时交换实现,假设您没有更改API签名,则不会对任何UI项目造成任何更改。

构建REST API的目的是为了只为您的业务模型构建一个项目。这允许您在任何平台上构建任意数量的应用程序,只需要您以不同的方式使用API。这实际上将用户界面与业务逻辑分离/分离,反之亦然

您应该为RESTAPI创建单独的项目,每个UI项目也应该是单独的项目。这允许您更改任何一个项目中的底层代码、语言和平台,而不破坏任何其他项目,只要API签名保持不变


例如,在使用AngularJS开发另一个septate项目时,您可以使用Codeignitor构建网站的实时版本。当您的AngularJS项目完成后,您只需在服务器上交换项目(或创建一个全新的网站或服务器),如果需要,仍然可以使用另一个。此外,您可能决定将API移动到不同的平台、语言或数据库,开发它,并在完成时交换实现,假设您没有更改API签名,则不会对任何UI项目造成任何更改。

我还想评论一下,除非您的管理应用程序与您的客户端网站/应用程序明显不同,您应该为用户分配一个角色,并根据用户角色从API显示/请求数据。我还想指出,除非您的管理应用程序与您的客户端网站/应用程序明显不同,您应该为用户分配一个角色,并根据用户角色显示/请求API中的数据。您是否使用类似ORM的条令?您是否使用类似ORM的条令?