在服务器上运行的REST API给出错误消息

时间:2018-12-08 09:10:59

标签: php rest api

我跟随该网站创建了自己的REST api [https://www.phpflow.com/php/create-php-restful-api-without-rest-framework-dependency/][1]

我的其余Api在我的远程服务器207.43.8.220:8008中运行。这些是我的php文件,我将它们放在var / www / api下。 connection.php在var / www / api

 <?php
Class dbObj{
/* Database connection start */
var $servername = "207.43.8.220:8008";
var $username = "root";
var $password = "qwerty";
var $dbname = "UsersApp";
var $conn;
function getConnstring() {
    $con = mysqli_connect($this->servername, $this->username, $this->password, $this->dbname) or die("Connection failed: " . mysqli_connect_error());

    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    } else {
        $this->conn = $con;
    }
    return $this->conn;
}
}
?>

这些文件(.htaccess和users.php)位于var / www / api / v1下 users.php文件:

// Connect to database
include("../connection.php");
$db = new dbObj();
$connection =  $db->getConnstring();

$request_method=$_SERVER["REQUEST_METHOD"];
switch($request_method)
{
    case 'GET':
        // Retrive Products
        if(!empty($_GET["id"]))
        {
            $id=intval($_GET["id"]);
            get_users($id);
        }
        else
        {
            get_users();
        }
        break;
    default:
        // Invalid Request Method
        header("HTTP/1.0 405 Method Not Allowed");
        break;
}
function get_users()
{
    global $connection;
    $query="SELECT * FROM users";
    $response=array();
    $result=mysqli_query($connection, $query);
    while($row=mysqli_fetch_array($result))
    {
        $response[]=$row;
    }
    header('Content-Type: application/json');
    echo json_encode($response);
}

当我运行207.43.8.220:8008/api/v1/users时,我得到了users.php代码lignes而不是200ok msg的结果。当我将<?php添加到users.php时,出现500个内部服务器错误,页面空白。我不知道问题出在哪里?通常我应该以json格式获取结果。

注意:我没有创建刚才创建的.htaccess的index.php文件。我的rest api将被android移动应用程序使用。

在查看error.log文件时,我发现问题是由声明相同的方法get_users()引起的。我评论了其中一个功能,然后得到了结果。现在,我想知道如何使用这两种方法,但是要使用不同的输入,就像代码中提到的那样。

0 个答案:

没有答案