Web Service w PHP dla aplikacji Android

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.

pexels-photo-169391.jpeg

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.

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s