Thinkphp自学计划-接口编写-06

终于到了接口编写了,这是我学PHP一直以来到目的

这次围绕这用户表进行的,主要实现了用户表的4个接口:

  • 注册
  • 登陆
  • 修改密码
  • 销毁账号

说白了就是数据库的增删改查,和上篇博客没啥区别,不过我们还是开始吧。

1.新建模块

新建一个模块专门用来写接口。


新建模块.jpg

2.新建用户表

首先新建一个用户表存储数据


新建用户表.jpg

3.接口编写

注:这些接口是根据我目前的知识量编写的,不是最佳编写方式

接口编写的json返回主要靠一个类去封装

class UserStatus
{
    var $status;
    var $data;
    var $message;
}

1.注册

首先先增加数据,就写注册接口吧。

    /**
     * 注册(增)
     */
    public function signUp($name, $password)
    {
        $data = ["username" => $name, "password" => $password];
        $statu = Db::table("user")->insert($data);

        $userstatus = new UserStatus();

        if ($statu == 1) {
            $userstatus->status = 1;
            $userstatus->message = "注册成功";
        } else {
            $userstatus->status = -1;
            $userstatus->message = "注册失败";
        }

        return json_encode($userstatus);

    }

测试接口:

http://127.0.0.1/ThinkphpDemo/public/api/User/signUp?name=zhangsan&password=123456789
http://127.0.0.1/ThinkphpDemo/public/api/User/signUp?name=lisi&password=qqwwee

返回json:{"status":1,"data":null,"message":"\u6ce8\u518c\u6210\u529f"}
数据库情况:

注册.jpg

2.登陆

    /**
     * 登陆(查)
     */
    public function signIn($name = '', $password = '')
    {
        $userstatus = new UserStatus();
        try {
            $model = Db::table("user")->where('username', $name)->where('password', $password)->find();
            if ($model == null) {
                $userstatus->status = -4;
                $userstatus->message = "no data";
                $userstatus->data = $model;
                return json_encode($userstatus);
            } else {
                $userstatus->status = 1;
                $userstatus->message = "sccuess";
                $userstatus->data = $model;
                return json_encode($userstatus);
            }

        } catch (\think\db\exception\DataNotFoundException $e) {
        } catch (\think\db\exception\ModelNotFoundException $e) {
        } catch (\think\exception\DbException $e) {
        }

    }

测试接口:

http://127.0.0.1/ThinkphpDemo/public/api/User/signIn?name=zhangsan&password=123456789

返回json:{"status":1,"data":{"id":"4","username":"zhangsan","password":"123456789"},"message":"sccuess"}

3.修改密码

    /**
     * 修改密码(改)
     */
    public function changePassword($name, $old_password, $new_password)
    {
        try {

            $userstatus = new UserStatus();

            $query = Db::table('user')
                ->where('username', $name)
                ->where('password', $old_password)
                ->update(['password' => $new_password]);

            $userstatus->status = 1;
            $userstatus->message = "sccuess";
            $userstatus->data = $query;

            return json_encode($userstatus);

        } catch (PDOException $e) {
        } catch (Exception $e) {
        }
    }

测试接口:

http://127.0.0.1/ThinkphpDemo/public/api/User/changePassword?name=zhangsan&old_password=123456789&new_password=zhangsan

json返回:{"status":1,"data":1,"message":"sccuess"}
数据库情况:

修改密码.jpg

4.销毁账号

    /**
     * 销毁账号(删)
     */
    public function destroyAccount($name, $password)
    {
        try {
            $userstatus = new UserStatus();

            $delete = Db::table('user')
                ->where('username', $name)
                ->where('password', $password)
                ->delete();

            if ($delete == 1) {
                $userstatus->message = "sccuess";
            } else if ($delete == 0) {
                $userstatus->message = "no the data";
            }

            $userstatus->status = 1;
            $userstatus->data = $delete;

            return json_encode($userstatus);

        } catch (PDOException $e) {
        } catch (Exception $e) {
        }
    }

接口测试:

http://127.0.0.1/ThinkphpDemo/public/api/User/destroyAccount?name=zhangsan&password=zhangsan

json返回:{"status":1,"data":1,"message":"sccuess"}
数据库情况:

销毁账号.jpg

大概就是这样,其实主要还是用到了数据库的增删改查,这种接口十分粗糙,不过也算一模一样了,总算达成了我最初学习PHP的意愿,但是代码并不精美,所以我还是要继续学习下去。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • width: 65%;border: 1px solid #ddd;outline: 1300px solid #...
    邵胜奥阅读 4,894评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,046评论 2 89
  • 题目 原题链接:B. Our Tanya is Crying Out Loud 题意 给出n,k,a,b四个数,每...
    ss5smi阅读 110评论 0 0
  • 生命是一场修行。 1 时隔了半年,没有出去兼职,昨天出去工作――饭店婚宴的服务员。 流程并不复杂,饭店无非就是卫生...
    爱生活的折耳猫阅读 326评论 0 3