API удаления элементов для приложения iOS (вызовы PHP для вызова API)IOS

Программируем под IOS
Ответить
Anonymous
 API удаления элементов для приложения iOS (вызовы PHP для вызова API)

Сообщение Anonymous »

Вот наша текущая настройка. У нас есть приложение iOS, которое выполняет вызовы API к моему PHP-скрипту, который обрабатывает запрос и запрашивает базу данных через PDO и MySQL. Таким образом, в этом случае существует API update_items.php, которому приложение iOS отправляет значения параметров, и в зависимости от того, обновляет ли пользователь элемент или удаляет элемент, API обрабатывает его соответствующим образом и запрашивает базу данных несколько раз (все в одном запросе). ).

Вот мое затруднительное положение. У меня работает бит обновления, но как я могу использовать тот же API обновления для удаления элемента через запрос POST? Быстрое решение, которое придумал мой iOS-разработчик, заключается в том, что если пользователь проводит пальцем по экрану, чтобы удалить элемент, он отправляет имя элемента как «DELETE» или что-то в этом роде. Это инициирует запрос на удаление записи базы данных. Мне это не нравится, потому что любой может это понять и использовать систему. Например, при редактировании элемента все, что мне нужно сделать, это ввести DELETE для имени элемента, и API обработает его так же, как запрос на удаление. Должен быть лучший способ, и я буду признателен за любые предложения. Ниже приведен мой текущий PHP-код, который обрабатывает вызов API. Однако я предложил одновременно отправлять два вызова API после того, как пользователь нажимает «Готово» для редактирования страницы своего элемента. Один для update.php, если пользователь обновляет элемент, и другой для delete.php, если пользователь решает удалить элемент.

// now check for updating/deleting ingredients for the menu item
if( isset($the_request['id']) ) {
/*
iterate through avalialable values because there could be multiple ingredient ids involved. handle it.
*/
for( $i=0;$i $the_request['id'][$i]
);
// the query
$query = 'DELETE FROM TABLE WHERE id = :id';
break;
default:
// assign passed parameters for query
$params = array(
':name' => $the_request['name'][$i],
':price' => $the_request['price'][$i]
);
// Remove the empty values
$params = array_filter($params, function($param) { return !empty($param); });
// Build an array of SET parameters
$set = array_map(function($key) {
return sprintf('%s = %s', substr($key, 1), $key);
}, array_keys($params));
// don't forget the id
$params[':id'] = $the_request['id'][$i];
// the query
$query = sprintf('UPDATE TABLE SET %s WHERE id = :id', implode(', ', $set));
}
// prepare statement
if( $ingStmt = $dbh->prepare($query) ) {
$ingStmt->execute($params);
} else {
echo json_encode(array('error' => $dbh->errorInfo().__LINE__));
}
}
$ingStmt->closeCursor();
}


Подробнее здесь: https://stackoverflow.com/questions/231 ... e-api-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»