使用 CodeIgniter 创建 Web 服务

Was*_*oui 0 web-services codeigniter

我使用 CodeIgniter 1.7 框架来制作我的网站。另一个团队为 iPhone 开发移动版本。所以另一个团队让我做一个 Web 服务来进行身份验证。他们说他们会寄给我:

POST REQUEST 
Input : login , password, push_token
if failure authentification -> Output HTTP : error code 0
if success -> Output XML :
<DATA>
 <User id='id_user' title='..' first_name='' last_name='' email='' postal='' country_id=''/> 
</DATA>
Run Code Online (Sandbox Code Playgroud)

基本上我有这个认证功能:

function check_login($username="", $password="")
{
$username = $_POST['username'];
$password = $_POST['password'];
...
...
}
Run Code Online (Sandbox Code Playgroud)

我正在查看这篇文章Codeigniter web services,但我不明白它是如何工作的,因为我是 webservice 的新手。

Rob*_*lin 5

我会考虑使用 json 作为唯一输出,其中一个值是成功TRUEFALSE取决于成功。它更容易处理,而且它所需要的只是您的网站是 utf8。

如果您check_login()返回TRUE,请将其用作成功的条件。

回复示例:

/* Class etc. */

function do_login() {
    $arr_json = array('success' => FALSE);
    if ($this->login_library->check_login()) {
        $arr_json['success'] = TRUE;
        $arr_json['user_id'] = $this->login_library->user_id;
    }
    echo json_encode($arr_json);
}
Run Code Online (Sandbox Code Playgroud)

login_library只是您的图书馆进行登录的一个例子。他们收到的回复只需要通过 解码json_decode()。然后简单地检查密钥success是否TRUE存在。

如果需要,可以调用error_message或类似的额外键,您可以通过form_validation运行所有后值。然后你也可以$arr_json['error_message'] = trim(validation_errors('', "\n"));在之前echo