blog

16 krok w aplikacji TAX FREE – REST API

17 maja 2017

Dziś w skrócie sposób na konsumpcję danych z serwisu za pomocą REST API z Swift 3 (bo jest lekki). Korzystam z framewok Foundation i zapisuję odczytane dane w sesji:

 let session = URLSession(configuration: URLSessionConfiguration.default)

let task = session.dataTask(with: URL(string: „adres webserwisu json”)!, completionHandler: { (data, response, error) in if error != nil { print(error!.localizedDescription) } else { do { if let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String: Any] {  print(json) } } catch { print(„błąd w JSONSerialization”) } } }) task.resume() 

Bardzo proste. Teraz czas na webserwis na serwerze udostępniający dane w php. Nie będzie korzystał z żadnych bibliotek i frameworków. Ma udostępniać dane teleadresowe sklepów obsługujących TAX FREE, tylko tyle. Potrzebne mi dane geolokacyjne, aby pokazać to na mapie, czyli tworzę klasę z takimi danymi oraz dwie metody, które mają zwracać wszystkie sklepy oraz parametryzowaną liczbę sklepów w pobliżu urządzenia:

<?php Class Shop { private $name,$NIP,$adress,$longitude,$latitude;

public function getAllShops(){}

public function getShops($count,$longitude,$latitude){} } ?>

Ciało metod do wypełnienia jak utworzę bazę danych w MySQL, bo hosting przewiduję na linuksie.  Teraz zastanawiałam się czy zostawić to tak, że dostęp do url-a oraz parametry przekazywać za pomocą GET czy zmienić na ładniejsze adresy. Wybieram oczywiście to drugie. Dlatego w /.htaccess zmieniam przekierowanie:

# Turn rewrite engine on Options +FollowSymlinks

RewriteEngine on    # map neat URL to internal URL

RewriteRule ^shops/ ShopController.php [nc,qsa]

RewriteRule ^shops/([^/]+)/([^/]+)$ ShopController.php?lon=$1&lat=$2&count=$3 [L]

Teraz ShopController.php, w którym również przechwytuję wyjątki (klasa ShopRestHandler):

<?php

require_once(„ShopRestHandler.php”);

$lon = „”;

$lat = „”;

$count = „”;

if(isset($_GET[„lon”])) $lon = $_GET[„lon”];

if(isset($_GET[„lat”])) $lon = $_GET[„lat”];

if(isset($_GET[„count”])) $count = $_GET[„count”];

$shopRestHandler = new ShopRestHandler();

if (strlen($lon)>0 && strlen($lon)>0 && strlen($id)>0) {$shopRestHandler->getAllShops();}

else $shopRestHandler->getShops($count,$lon,$lat);

 ?>

Reszta jutro.

Tagi: , ,

iPhone_MelaStudio
 
RSS GitHub PinterestFacebook
email: contact@melastudio.pl
2018 © by MelaStudio