strgeon

使用CodeIgniter框架搭建RESTful-API服务
前言win平台,win10/win7应该没差。使用的php的restful的方式来进行api的编写。注:这里写的是...
扫描右侧二维码阅读全文
23
2018/07

使用CodeIgniter框架搭建RESTful-API服务

前言

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


安装xampp&git

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


下载CI框架&codeigniter-restserver

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

使用的方法是下载codeigniter-restserver之后替换CI框架下的application文件夹,这里我选择了全部覆盖
替换完成之后可以直接跳过下一部分,进入xampp的设置--->[点我跳转](#设置xampp
)
但是这样的做法应该是不是很好暂不清楚。但是下面使用composer进行包管理的方法安装,安装完成之后并没有restful的文件。虽然在codeigniter-restserver的文档下面是这么推荐的。

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


安装composer&安装restful

暂时建议下载两个包之后替换使用restful的application文件夹替换CI框架的文件夹,发现使用下面的包管理安装之后还缺少一点文件。
注:在本文教程这部分可以选择不食用,使用此法本人没有完成搭建(是因为自己菜,逃...)

composer直接下载exe就好了--->链接
composer会自动检测,安装在xampp的路径下C:\xampp\php\php.exe,如果没有自己指定一下php.exe的路径。composer安装安装完成之后可以在git bash看到情况,输入composer回车即可。
composer
然后配置一下,不然composer很慢

//composer很慢的解决方法,在仓库根目录下
composer config repo.packagist composer https://packagist.phpcomposer.com
//该命令是修改composer.json的方法
//修改完之后还要确认项目文件夹下的composer.json的repositories是否正确
"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

接下来使用composer安装restful,在git bash中输入composer require chriskacerguis/codeigniter-restserver等一会就安装完成了。


设置xampp

xampp的虚拟主机可以参照我之前的一篇博客--> {% post_link PHP/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,在里面填入以下内容
这个文件需要放在网站的根目录

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

Nginx的重写规则

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

  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. 规定好接口,让多种产品表现统一便于更改


参考资料

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

最后修改:2018 年 08 月 17 日 03 : 45 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论