Решил тут на выходных поизучать разные готовые скрипты, предоставляющие функционал API-взаимодействия. Наткнулся на этот с интересным для меня функционалом:
How to create REST API for Android ... – Day 1
How to create REST API for Android ... – Day 2
Архив на ЯДиске или на или на сайте автора.
Но в конечном итоге при запросе GET
localhost/task_manager/v1/tasks HTTP Headers Authorization "Value api key", который должен быть выдать список всех созданных сообщений - получаю ответ
"500 Internal Server Error".
Изучение лога ошибок сервера дает результат:
"PHP Fatal error: Call to undefined method mysqli_stmt::get_result() in /home/.../include/DbHandler.php on line 268".
Ниже - листинг кода:
v1/index.php136 /**
137 * Listing all tasks of particual user
138 * method GET
139 * url /tasks
140 */
141 $app->get('/tasks', 'authenticate', function() {
142 global $user_id;
143 $response = array();
144 $db = new DbHandler();
145
146 // fetching all user tasks
147 $result = $db->getAllUserTasks($user_id);
148
149 $response["error"] = false;
150 $response["tasks"] = array();
151
152 // looping through result and preparing tasks array
153 while ($task = $result->fetch_assoc()) {
154 $tmp = array();
155 $tmp["id"] = $task["id"];
156 $tmp["task"] = $task["task"];
157 $tmp["status"] = $task["status"];
158 $tmp["createdAt"] = $task["created_at"];
159 array_push($response["tasks"], $tmp);
160 }
161
162 echoRespnse(200, $response);
163 });
include/DbHandler.php260 /**
261 * Fetching all user tasks
262 * @param String $user_id id of the user
263 */
264 public function getAllUserTasks($user_id) {
265 $stmt = $this->conn->prepare("SELECT t.* FROM tasks t, user_tasks ut WHERE t.id = ut.task_id AND ut.user_id = ?");
266 $stmt->bind_param("i", $user_id);
267 $stmt->execute();
268 $stmt->get_result();
269 $stmt->close();
270 return $tasks;
271 }
Буду рад совету с подсказкой как убрать эту ошибку.