使用RESTful API

时间:2016-01-04 14:40:46

标签: php api rest

我希望获得PHP方面的经验,这样我就可以使用自己的RESTful API服务器了。我读了REST,地址应该是什么样子,HTTP谓词状态代码是什么。我的朋友正在与客户端(Android,Java)合作,我做服务器端。

对于第一阶段,我必须进行身份验证和注册。我不知道如何获取数据,但我的代码应验证用户名和密码,然后将这些值与数据库进行比较。最后,如果用户存在,它必须接收一个令牌,据我所知,它必须用于访问我的API的其他方法。这是我遇到问题的地方:

<?php

require __DIR__ . '/auth.php';

class Handler extends DbConn

{
public function isValidUser($login,$password_hash)
    {

        $sql = 'SELECT 1 FROM users WHERE name = :name AND password_hash = :password_hash';
        $stmt = $this->pdo->prepare($sql);
        $stmt->bindValue(':name',$login);
        $stmt->bindValue(':password_hash',$password_hash);
        $stmt->execute();
        $row = $stmt->fetchColumn();
        if ($row == 1)
        {
            $this->getCurrentToken($login);
        } else {
            $this->createUser();
        }
    }

    protected function getCurrentToken($login)
    {
        $sql = 'SELECT api_key FROM users WHERE name = :name';
        $stmt = $this->pdo->prepare($sql);
        $stmt->bindValue(':name',$login);
        $stmt->execute();
        $row = $stmt->fetchColumn();

    }




}
?>

这只是一个模板,可能存在一些错误。我不知道接下来该做什么。从理论上讲,我理解我必须给用户一个令牌,但你怎么做?我如何创建服务器的响应?如何使用json将数据从服务器传输到客户端?

我知道它在理论上应该如何运作,但我很难将其付诸实践。我不希望得到详细的解释,我只想了解其含义,了解什么算法。我应该阅读什么材料?有人可以给我建议上面的代码,例如我应该在课程中添加哪些方法的示例。

此外,考虑到它是API,它必须以不同方式适用于浏览器和移动应用程序。 伙计们,我希望你能给我一些有用的提示。谢谢你的关注。

1 个答案:

答案 0 :(得分:0)

如果客户端用于通过POST调用服务器(即android中的HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");),那么您将获得用户在$_POST

发布的所有数据

如果你是初学者关于休息的话,请不要在这个级别弄乱数据库只是创建页面

<?php
echo json_encode($_POST);
?>

并从客户端调用它,您将获得更多路径:)