Autor | Zpráva | ||
---|---|---|---|
jirkasak15 Profil |
#1 · Zasláno: 7. 4. 2016, 13:37:05
Ahoj,
dostal jsem za úkol vytvořit aplikaci pracující s API, ale nedaří se mi dostat, resp odeslat požadavek na server. API využívá architekturu RESTfull API. Základním formátem pro komunikaci se systémem je JSON nebo POST. Veškeré požadavky i získaná data jsou tedy vyžadována ve formátu JSON nebo POST s příslušným nastavením Content-Type: application/json a poskytována ve formátu JSON. Bohužel v JSON a celkově s meziserverovou komunikací jsem dost pozadu, tak bych vás rád požádal, o nějaký vzorový příklad, jak v tomto případě komunikovat se serverem. Jako vzrovou situaci bych uvedl vyžádání dat o studentovi na základe student_id, které se má předat přávě pomocí JSON či POSTu. Adresa na API: https://skola.stranka.cz/api/<apiKey>/student Předem děkuji. |
||
Kubo2 Profil |
#2 · Zasláno: 7. 4. 2016, 22:06:33
jirkasak15:
„JSON nebo POST s příslušným nastavením Content-Type: application/json“ Metódou POST vo formáte JSON? „Jako vzrovou situaci bych uvedl vyžádání dat o studentovi na základe student_id, které se má předat přávě pomocí JSON či POSTu.“ V každom prípade jednoducho pošleš na server požiadavok HTTP metódou POST. Surový požiadavok môže vyzerať napr. takto: • POST V tomto prípade sa dáta (identifikátor + hodnota) posielajú na server metódou POST vo formáte application/x-www-form-urlencoded .
POST /api/<apiKey>/student Host: skola.stranka.cz Content-Type: application/x-www-form-urlencoded student_id=<studentId> • JSON V prípade JSONu pošleš JSON. POST /api/<apiKey>/student Host: skola.stranka.cz Content-Type: application/json { "student_id": <studentId> } <studentId> pritom musí byť číslo (v JSON kontexte). O JSONe si niečo prečítaj (česky). Konkrétne som ťa odkázal na originálnu JSON špecifikáciu.
V PHP je k tomuto účelu asi najjednoduchšie riešenie prostý file_get_contents() , ale odporúčal by som ti minimálne si vytvoriť nejaké vlastné rozhranie medzi touto HTTP komunikáciou s daným API a tvojou aplikáciou priamo v PHP.
Príklad s použitím file_get_contents() (predpokladám, že sa sám pozrieš do PHP Manuálu a dohľadáš si, ako pracujú funkcie, ktoré som v príklade použil).
<?php $apiKey = 'toto je tvoje api key'; $apiRequest = array('student_id' => 123); $json = file_get_contents("https://skola.stranka.cz/api/$apiKey/student", FALSE, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => 'Content-Type: application/json', 'user_agent' => 'jirkasak15 API client for https://skola.stranka.cz/api/', 'content' => json_encode($apiRequest), ] ])); $apiResponse = json_decode($json); var_dump($apiResponse); |
||
jirkasak15 Profil |
#3 · Zasláno: 8. 4. 2016, 08:43:21
Kubo2:
Děkuji za materiál, který jsi zde přidal, je to dobrý odrazový můstek. Určitě si o tom ještě něco dohledám, abych zaplnil tu mezeru ve znalostech. Nakonec jsem vše vyřešil pomocí cURL, které mi je dobře známé, každopádně ti moc děkuji. |
||
Časová prodleva: 9 let
|
0