这个API需要一个apache的改写
将全部的入口都丢入index,这样才能作为一个API被使用
这份代码目前丢在我的Github上
调用方与设计方提前商定好API接口。
如在本机上跑"localhost/API/restful/" 是自己的文件
可以设计一个.htaccess的系统文件,这个文件调整的是apache的重写规则
RewriteEngine on //apache的重写文件
RewriteCond %{REQUEST_FILENAME} !-d //这里如果不是文件也不是目录,才会把这条URL交给以下RewriteRule执行,且
RewriteCond %{REQUEST_FILENAME} !-f //多个RewriteCond在一起只对下一个RewriteRule产生影响
RewriteRule ^(.*$) index.php/$1 [L] //默认这个目录下的访问全部转到index.php下
^(.*)$ 为匹配所有的路径映射到入口文件 index.php/$1
这个中括号中[L]的意义:
Apache Rewrite规则修正符
1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联
$pdo = new PDO('mysql:host=ip地址;dbname=数据库名','root','数据库密码'); //创建一个数据库句柄
$pdo->query("SET NAMES utf8"); //设置数据库内容取出的内容为utf-8格式
$pdo = require 'Db.php'; //句柄的调用
关于一个类的调用,其数据库的句柄应该通过构造方法来调用
关于数据库的调用可以这么写
$sql = 'SELECT * FROM `zhuche` WHERE `username` = :username'; //这里:是占位符 防sql注入
$stmt = $this->_db->prepare($sql); //调用自己变量直接不用$
$stmt->bindParam(':username',$username); //给刚才的变量进行赋值
$stmt->execute();
$result = $stmt -> fetch(PDO::FETCH_ASSOC); //进行一个数据类型为数组的查询,
//如果只是修改上句话就省掉变成
if(!$stmt->execute()){
throw new Exception('注册失败',ErrorCode::REGISTER_FAIL);
}
switch($a){
5:
4:
}5:和4:后面分别为$a的值为5或者4产生的结果.
前缀为localhost/API/restful
//用户的注册/users
POST "username" : ,
"password" : ,
"name" : ,
"intro" : ,
"sex" : ,"email": 这么6个变量
//文章的创建先要有登录(在postman的,/articles
POST "title": , "content":
//文章的修改/articles/5(需要登录 这里需要加上一个/id
PUT "title": , "content":
//文章的查询,分2种
//1、有/id,确定查找某id
GET 直接在url后加个/id即可查找出
//2、查找一个人写的,但是id这里需要为0才表示查找一个list
GET 在url后面?authorid=27这么加
question:
1、密码是MD5加密的,那么字符串要设置得足够长度
2、测API,提交的数据。如get之类用postman是在params里,而body是获取raw里的数据
3、通过header给的token数据,注意带有头bearer这个字符在里面