我正在尝试使用CodeIgniter构建一个Web API作为PHP框架。
这不是REST api。它只是一个Web api,这意味着所有查询都将是POST查询。
典型的查询将如下所示
http://host/api1/user/get_name
和
http://host/api2/user/get_name
在这种情况下,api1和api2成为控制器,用户成为其下的方法。
我对此并不满意,因为那时我的api1和api2类变得太大而且我不喜欢在一个类中混合不相关的代码。
我该怎么办?我可以使用我的.htaccess文件或路由配置,以便每次服务器收到表单\ ^ api \的请求时,它会将其转发到适当的控制器吗?
请注意,api1和api2不是我系统中唯一的控制器。
答案 0 :(得分:2)
你必须考虑几件事
如果他们不相互依赖,那么我会建议你这样做
http://host1/user/get_name
http://host2/user/get_name
如果它们是相互依赖的,那么你必须这样做
http://host/api1/user/get_name
http://host/api2/user/get_name
背后的原因是你不需要维护2种不同的模型。
例如,如果您在X_model.php
中进行了一些更改,则必须在两台服务器上上传。
您可以在控制器下创建文件夹。我对此非常肯定。我已经在codeigniter 1.7
中完成了。
所以你可以分别创建文件夹并继续它。!
答案 1 :(得分:1)
答案 2 :(得分:1)
什么是API1和API2?他们是否相互独立?
如果是这样,我建议你为这两个API使用单独的子域名,这样你就可以这样做:
http://api1.example.com/user/get_name
http://api2.example.com/user/get_name
这提供了两个API之间的明确分离,并允许User
作为控制器而不是整个API。
这将要求您在托管根目录中创建两个目录(api1, api2
),“安装”两个CI实例并将子域路由到相应的目录。
答案 3 :(得分:0)
我认为您的网址方案没有任何问题。这就是你应该如何调用控制器 - >在codeigniter中的行动。 如果您希望控制器是瘦的,请移动库中的实际处理代码并为每个请求调用库。 或者你可以使用重写规则来分配不同控制器的工作。