Przyszedł czas kiedy zająłem się tworzeniem web service dla mojej aplikacji. Postanowiłem go napisać w PHP, ponieważ znam go najlepiej z wszystkich języków używanych w webowym świecie.
Jakie zadania będzie miał mój WS?
Po pierwsze będzie przechowywał bazę danych z użytkownikami i operował na niej, kiedy klient aplikacji będzie wysyłał jakieś żądania np. dodanie użytkownika, wyświetlenie informacji o użytkowniku. Będzie przechowywał także ostatnią znaną lokalizację użytkowników i porównywał ją z innymi użytkownikami i kiedy będzie taka potrzeba wyśle odpowiednie informacje odpowiednim użytkownikom informując ich, że są w pobliżu, a aplikacja na tej podstawie przedstawi im odpowiednią restaurację, w której mogą się spotkać.
Web Service
Plik z kodem PHP ma już pewien zarys. Wymaga jeszcze dodania wielu funkcjonalności i refaktoryzacji. Kod, który napisałem jest brzydki, ale musiałem sobie przypomnieć jak to jest pisać w PHP, bo dawno tego nie robiłem. Bazę danych i kod umieściłem na jednym z moich hostingów. Wszystko w celu dowiedzenia się jak to będzie działało w aplikacji, bo nie ukrywam jest to mój pierwszy raz z WS. Poniżej zamieszczam kod, którego używałem na localhoscie.
<?php if (isset($_GET['user']) && intval($_GET['user'])) { $mysqli = new mysqli("localhost", "root", "qwe123", "MeetHere"); if ($mysqli == false) { die("ERROR: Could not connect. " . $mysqli->connect_error); } $user_id = $_GET['user']; $user = $mysqli->query("SELECT * FROM `Users` WHERE `ID` = " . $user_id) or die("error while query"); $user_array = array(); while ($user_field = mysqli_fetch_row($user)) { $user_array['ID'] = $user_field[0]; $user_array['name'] = $user_field[1]; $user_array['surname'] = $user_field[2]; $user_array['email'] = $user_field[3]; $user_array['city'] = $user_field[4]; $user_array['dayOfBirthday'] = $user_field[5]; $user_array['lastLocalization'] = $user_field[6]; $user_array['createdAt'] = $user_field[7]; } header('Content-type: application/json'); echo json_encode(array('user'=>$user_array)); $mysqli->close(); } if (isset($_GET['saveLoc'])) { $mysqli = new mysqli("localhost", "root", "qwe123", "MeetHere"); if ($mysqli == false) { die("ERROR: Could not connect. " . $mysqli->connect_error); } $user_id =$_GET['saveLoc']; $user_loc =$_GET['localization']; $mysqli->query('UPDATE `Users` SET `lastLocalization` = ' . '"' . $user_loc . '" WHERE `ID` = ' . $user_id); header('Content-type: application/json'); echo json_encode("success"); $mysqli->close(); } if (isset($_GET['addUser'])) { $mysqli = new mysqli("localhost", "root", "qwe123", "MeetHere"); if ($mysqli == false) { die("ERROR: Could not connect. " . $mysqli->connect_error); } $user_name = $_GET['addUser']; $user_surname = $_GET['surname']; $user_email = $_GET['email']; $user_city = $_GET['city']; $user_dayOfBirthday = $_GET['dayOfBirthday']; $user_lastLocalization = $_GET['lastLocalization']; $user_createdAt = $_GET['createdAt']; $mysqli->query('INSERT INTO `Users`(`name`, `surname`, `email`, `city`, `dayOfBirthday`, `lastLocalization`) VALUES ("'. $user_name .'", "'.$user_surname .'", "'.$user_email .'", "'. $user_city .'", "'. $user_dayOfBirthday .'", "'. $user_lastLocalization .'")'); header('Content-type: application/json'); echo json_encode("success"); $mysqli->close(); }
Implementacja współpracy aplikacji z web service i jego dalszy rozwój opiszę w ramach następnego postu. Zachęcam więc do śledzenia mojego Twittera, informuję tam o publikacji nowych postów.