| 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: 10 let
|
|||
0