• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

użycie technologi REST w moim kodzie PHP

VPS Starter Arubacloud
0 głosów
443 wizyt
pytanie zadane 20 marca 2017 w PHP przez Gun3R Nowicjusz (120 p.)

Witajcie, mam taki kod w php:

<?php

//$connection = mysqli_connect("hostname","username","password","db_employee") or die("Error " . mysqli_error($connection));

	require_once "connect.php";
	mysqli_report(MYSQLI_REPORT_STRICT);
	
	try
	{ 
		$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
	
		if ($polaczenie->connect_errno!=0)
		{
			throw new Exception(mysqli_connect_errno());		
		}
		else
		{
					//fetch table rows from mysql db
					$sql = "select * from tbl_employee";
					$result = mysqli_query($polaczenie, $sql) or die("Error in Selecting " . mysqli_error($polaczenie));
							
				//create an array
					$emparray = array();
					while($row =mysqli_fetch_assoc($result))
					{
						$emparray[] = $row;
					}
				
				echo json_encode($emparray);
				
				//write to json file
					$fp = fopen('empdata.json', 'w');
					fwrite($fp, json_encode($emparray));
					fclose($fp);		
                   $polaczenie->close();
		}
	}	


	
	catch(Exception $e)
				{
					echo '<span style= "color:red;">Błąd serwera!</span>';
					echo '<br/> Informacja developerska.'.$e;
					
				}		
				
?>

Muszę zrobić usługę, na którą wywołanie metody GET zwróci wszystkie produkty z bazy, w tablicy w postaci JSON. Wysłanie danych o produkcie metodą POST powinno dodawać do bazy. 

I tu moje pytanie: jak mam w tym kodzie "zainstalować" funkcje POST i GET? Może macie jakieś proste tutoriale które mi to zobrazują. Próbowałem wielu ale wydają się być skomplikowane i nie umiem powiązać (zsynchronizować) tamtego kodu z moimi danymi z bazy.

 

Z góry dziekuję i pozdrawiam.

1 odpowiedź

+3 głosów
odpowiedź 20 marca 2017 przez xandros Nałogowiec (29,450 p.)
edycja 21 marca 2017 przez xandros

Tu masz rozwiazanie dla serwera:

  1. Prosta: https://www.slimframework.com/docs/objects/router.html
  2. Prosta: https://github.com/nikic/FastRoute
  3. Trudniejsza #pracochlonna : tworzenie wlasniego kontrolera requestów

Tu masz rozwiazanie dla klienta:

  1. Prosta: http://docs.guzzlephp.org/en/latest/
  2. Trudniejsza: http://codular.com/curl-with-php
  3. Trudniejsza: http://php.net/manual/en/function.fopen.phphttp://php.net/manual/en/function.stream-context-create.php#refsect1-function.stream-context-create-examples
  4. Najtrudniejsza: http://php.net/manual/en/function.fsockopen.php#refsect1-function.fsockopen-examples

Masz dodatkowo lekture: http://www.restapitutorial.com/lessons/httpmethods.html

Edit:

Event, po odświeżeniu zadziałało, ale dziwne. A sprawdź tą: http://www.restapitutorial.com/

komentarz 21 marca 2017 przez event15 Szeryf (93,790 p.)
Ostatni link padł
komentarz 21 marca 2017 przez Gun3R Nowicjusz (120 p.)
edycja 21 marca 2017 przez Gun3R

1. jak w takim razie rozdzielić rozwiazanie dla klienta i rozwiązanie dla serwera? gdzie mam zastosować jedno a gdzie drugie?

 

2. Gdy próbuję uzyć Guzzle albo tego Slim Framework to przeglądarka wyrzuca mi błąd "Fatal error: Class 'Slim\App' not found in C:\xampp\htdocs\projekt\api.php on line 40"

"Fatal error: Class 'GuzzleHttp\Client' not found in C:\xampp\htdocs\projekt\api.php on line 40"

Jak w takim razie przerobić te linie kodu, by wszystko działało? 

 

3. (również w Slim Framework) deklarowane są 3 zmienne: $request, $response, $args

One muszą sie do czegoś odnosić, ale z opisów poniżej nie bardzo wiem co dokładnie mam im przypisać i jakiej użyć składni. 

 

komentarz 21 marca 2017 przez xandros Nałogowiec (29,450 p.)
edycja 21 marca 2017 przez xandros

Event, zrobiłem edita, możesz sprawdzić?

#1 Miałem fajny film od JavaDevMatt, który w prosty sposób odpowiada na to pytanie. W skrócie serwer serwuje lub przetwarza dane, które otrzymał, a klient obsługuje odpowiedzi z serwera wraz z prezentacją pobranych danych.

W sumie coś znalazłem i jest nawet zjadliwe: https://youtu.be/7YcW25PHnAA

#2: a zainstalowales biblioteki i dołączyłeś autoloadera?

https://getcomposer.org/ 

https://youtu.be/RhcQXFeor9g 

#3 nie deklarowane, a przekazywane do callbacka. Slim3 używa standardów psr7. Dobrze byłoby, jakbyś wiedział, jak działa zapytanie do serwera http:

http://symfony.com/doc/current/introduction/http_fundamentals.html

https://en.wikipedia.org/wiki/Request%E2%80%93response

tldr;

$request to wszystkie dane odnosnie tego, co client wysłał, a $response to odpowiednio przygotowana zmienna, która odsyłasz do klienta.

https://www.slimframework.com/docs/objects/request.html

https://www.slimframework.com/docs/objects/response.html

$args, są w $request pod metodą getArguments(); lub getArgument(Nazwa, CoMaZwrocic,GdyNieZnajdzie);

Daj mi 30min, zrobie ci przyklad i wrzuce na gista

komentarz 21 marca 2017 przez xandros Nałogowiec (29,450 p.)
edycja 21 marca 2017 przez xandros
Trochę więcej niż 30 min:

## edit:
https://github.com/xandros15/client-server-example ##repo bo gist nie uznaje katalogów

zassysasz, instalujesz, odpalasz.

instalujesz komendą composer install

odpalasz komenda php runClient oraz php runServer, albo jak czujesz się na siłach ustawiasz nginxa/apacha/dockera/vargranta/cotammasz, tak aby to dzialalo :P

Jak używasz phpservera, to aplikacje klienta będziesz miał pod localhost oraz localhost/{id:posta}, a api localhost:8080 oraz localhost:8080/{id:posta}
komentarz 21 marca 2017 przez Gun3R Nowicjusz (120 p.)
a gdzie mam te komendy wpisać?
komentarz 21 marca 2017 przez xandros Nałogowiec (29,450 p.)

#2: a zainstalowales biblioteki i dołączyłeś autoloadera? 

https://getcomposer.org/

https://youtu.be/RhcQXFeor9g

komentarz 21 marca 2017 przez xandros Nałogowiec (29,450 p.)

Podobne pytania

0 głosów
2 odpowiedzi 380 wizyt
pytanie zadane 4 grudnia 2018 w PHP przez james4444 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 284 wizyt
pytanie zadane 5 stycznia 2019 w PHP przez Greeenone Pasjonat (16,100 p.)
0 głosów
0 odpowiedzi 135 wizyt
pytanie zadane 28 kwietnia 2019 w PHP przez manager96 Bywalec (2,050 p.)

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...