Ik loop een beetje vast in een wens die ik heb. Hopelijk heeft één van jullie voor mij een antwoord hoe dit op te lossen. Het gaat om een REST API koppeling die ik het liefst dynamisch opbouw. Op deze manier kan ik natuurlijk snel en makkelijk nieuwe resources koppelen zonder hele blokken code te kopiëren+plakken.
Stel we hebben drie resources: products, orders en orderrows.
Per resource bestaan er vier methods: GET, POST, PATCH en DELETE
In mijn gedachten moet het zo worden dat deze vier methods op alle resources toe te passen zijn. Daarbij zijn er ook functies om een resource om te zetten naar objecten met specifieke eigenschappen van die resource. Zo bevat een product bijvoorbeeld een naam en omschrijving, maar een order bevat een ordernummer en aanmaakdatum.
Onderstaande code werkt tot zover ik in gedachten had.
Nu output de class natuurlijk alleen tekst, de bedoeling is dat er dynamisch een webservice aangeroepen wordt. Alleen zoek ik een manier om simpel een opgehaald product om via een matching wijze de velden uit de webservices naar een eigen naamgeving te bouwen.
Dus bijvoorbeeld dat de velden 'name' en 'description' worden omgezet naar eigen naamgevingen 'Name' en 'Description'. Het idee hierachter is dat een tweede webservice misschien de velden 'productname' en 'productdescription kent, die ik via een aparte matching ook om kan zetten naar eigen naamgevingen 'Name' en 'Description'.
De tweede webservice valt buiten deze scope, dat zal gaan komen in een tweede api.php bestand specifiek voor die webservice.
Ik hoop dat ik het een beetje heb kunnen uitleggen. Anders hoor ik graag jullie ideeën. Waarvoor dank alvast natuurlijk!!
Stel we hebben drie resources: products, orders en orderrows.
Per resource bestaan er vier methods: GET, POST, PATCH en DELETE
In mijn gedachten moet het zo worden dat deze vier methods op alle resources toe te passen zijn. Daarbij zijn er ook functies om een resource om te zetten naar objecten met specifieke eigenschappen van die resource. Zo bevat een product bijvoorbeeld een naam en omschrijving, maar een order bevat een ordernummer en aanmaakdatum.
Onderstaande code werkt tot zover ik in gedachten had.
code:
1
2
3
4
| $Api = new Api(); $Api::Products()->Get(); # products::GET $Api::Orders()->Get(); # orders::GET |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| api.php class Api{ private static $_instance = null; static public function Products(){ if (self::$_instance === null) { self::$_instance = new self; } echo 'products'; return self::$_instance; } static public function Orders(){ if (self::$_instance === null) { self::$_instance = new self; } echo 'orders'; return self::$_instance; } static public function Orderrows(){ if (self::$_instance === null) { self::$_instance = new self; } echo 'orderrows'; return self::$_instance;} static public function Get(){ echo '::GET'; echo "<br /><br />"; } static public function Patch(){} static public function Post(){} static public function Delete(){} static public function ToSystem(){ echo ' matching '; include('Products.php'); } } |
Nu output de class natuurlijk alleen tekst, de bedoeling is dat er dynamisch een webservice aangeroepen wordt. Alleen zoek ik een manier om simpel een opgehaald product om via een matching wijze de velden uit de webservices naar een eigen naamgeving te bouwen.
Dus bijvoorbeeld dat de velden 'name' en 'description' worden omgezet naar eigen naamgevingen 'Name' en 'Description'. Het idee hierachter is dat een tweede webservice misschien de velden 'productname' en 'productdescription kent, die ik via een aparte matching ook om kan zetten naar eigen naamgevingen 'Name' en 'Description'.
De tweede webservice valt buiten deze scope, dat zal gaan komen in een tweede api.php bestand specifiek voor die webservice.
Ik hoop dat ik het een beetje heb kunnen uitleggen. Anders hoor ik graag jullie ideeën. Waarvoor dank alvast natuurlijk!!
20x SF170s + SMA SB3000TL-21 | PV Output