0%

使用CodeIgniter框架搭建RESTful_API服务

前言

win平台,win10/win7应该没差。
使用的php的restful的方式来进行api的编写。
注:这里写的是本地的开发环境,xampp+CI的restful,服务器端推荐oneinstack


安装xampp&git

下载之后傻瓜安装然后打开就行了。在win下还是用git bash比较方便。
对于xampp的使用可以参照一下之前写的一篇博客–> xampp配置虚拟主机


下载CI框架&codeigniter-restserver

此时实验的版本是CI-3.1.6,restful-3.0.3

使用的方法是下载codeigniter-restserver之后替换CI框架下的application文件夹,这里我选择了全部覆盖进入xampp的设置

但是这样的做法应该是不是很好暂不清楚。但是下面使用composer进行包管理的方法安装,安装完成之后并没有restful的文件。虽然在codeigniter-restserver的文档下面是这么推荐的。

注:因为CI框架还会继续更新,所以比较好的方法是从github克隆下来,以后进行merge更新CI框架的版本,这里仅给开发学习示例


设置xampp

xampp的虚拟主机可以参照我之前的一篇博客–> xampp配置虚拟主机
首先说一下xampp的设置,需要两个地方进行设置。

修改Apache的重写规则

在httpd.conf中修改(可直接在xampp面板中点Apache=>config=>Apache(httpd.conf))
搜索,mod_rewrite,然后将前面的#去掉。
LoadModule rewrite_module modules/mod_rewrite.so
搜索,AllowOverride,然后将后面的none改成all,如下
AllowOverride All
然后保存之后重启Apache服务器

加入.htaccess

在win下创建一个.htaccess,在里面填入以下内容
这个文件需要放在网站的根目录

1
2
3
4
5
6
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

Nginx的重写规则

需要在vhost里面添加如下内容

1
2
3
location / {
try_files $uri $uri/ /index.php?$query_string;
}

打开测试

在将restful文件中的application的文件替换到CI框架的application文件夹后就已经有例子了。在首页也能看到REST Server Tests的字样,点击进去就能测试简单的GET请求是否正常。
或者打开postman用GET请求向http://localhost/example/users发起请求,应该能得到以下反馈说明正常。我的图片是http://timecapsule/example/users是因为我配置了虚拟主机。
restful的get请求


大致使用方法

  1. 将自己的api写到Controllers的文件夹下面即可,测试中给出
  2. 将复杂的逻辑和操作写到Model文件中,api中只做简单判断,加强复用
  3. 前后端分离,规定好接口进行开发
  4. 规定好接口,让多种产品表现统一便于更改

参考资料

扔一篇官方的教程
再扔一个中文的教程翻译
(其实还是感谢站长的指导吧,并没有找到比较好的配置安装文档)

听说好看的人都关注了我的公众号《泫言》