Hallo Devs!
Ben al een tijdje aan het puzzelen met een query voor mijn API. Deze wil ik op basis van de Facebook Graph API gaan doen aangezien ik zelf ook een Graph database heb is het voor mij tevens handig is om specifieke data terug te krijgen.
Waar ik nu echter op vast loop ondanks vele pogingen is het goed uit elkaar splitten van de url query die ik mee stuurt als data.
Dit is de data als volgt mee stuur.
Ik wil het op de volgende manier hebben namelijk. Alleen kreeg ik het ondanks vele pogingen met splitten van de data het niet voor elkaar.
Ik heb zelf al de volgende pogingen gedaan om dit zo efficiënt te maken maar echt gelukt tot deze diepte is het niet gelukt.
Weet iemand hier raad mee om het alsnog voor elkaar te krijgen. Facebook heeft zijn eigen explorer waarbij je de query kan maken. In principe is mijn doel om eigenlijk alle lagen die hun kunnen dat ik die ook bij mijn eigen applicatie aan kan.
Ben al een tijdje aan het puzzelen met een query voor mijn API. Deze wil ik op basis van de Facebook Graph API gaan doen aangezien ik zelf ook een Graph database heb is het voor mij tevens handig is om specifieke data terug te krijgen.
Waar ik nu echter op vast loop ondanks vele pogingen is het goed uit elkaar splitten van de url query die ik mee stuurt als data.
Dit is de data als volgt mee stuur.
code:
1
| /me?fields=id,name,photos.limit(100){height,from} |
Ik wil het op de volgende manier hebben namelijk. Alleen kreeg ik het ondanks vele pogingen met splitten van de data het niet voor elkaar.
code:
1
2
3
4
5
6
7
| ['me' => ['fields' => ['id', 'name', 'photos' => [ 'limit' => '100', ['height', 'from'] ] ] ] |
Ik heb zelf al de volgende pogingen gedaan om dit zo efficiënt te maken maar echt gelukt tot deze diepte is het niet gelukt.
Weet iemand hier raad mee om het alsnog voor elkaar te krijgen. Facebook heeft zijn eigen explorer waarbij je de query kan maken. In principe is mijn doel om eigenlijk alle lagen die hun kunnen dat ik die ook bij mijn eigen applicatie aan kan.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
| function parseQuery() { $newoutput = []; $buffer = ''; $depth = 0; $parent = ''; $subParent = ''; for( $i = 0; $i < strlen( $this->_input ); $i++ ) { if( $this->_input[$i] == ',' ) { if( strlen( $buffer ) ) { if( $depth == 0 ) { $filters = explode( ".", $buffer ); $newoutput[$filters[0]] = []; if( count( $filters ) > 1 ) { $key = $filters[0]; array_shift( $filters ); foreach( $filters AS $filter ) { $newoutput[$key][] = $filter; } } $parent = $buffer; } else { $filters = explode( ".", $buffer ); $newoutput[$parent][] = $filters[0]; if( count( $filters ) > 1 ) { $key = $filters[0]; array_shift( $filters ); foreach( $filters AS $filter ) { $newoutput[$parent][$key][] = $filter; } } } } $buffer = ""; } elseif( $this->_input[$i] == '{' ) { $filters = explode( ".", $buffer ); $parent = $filters[0]; $newoutput[$filters[0]] = []; if( count( $filters ) > 1 ) { $key = $filters[0]; array_shift( $filters ); foreach( $filters AS $filter ) { $newoutput[$key][] = $filter; } } $buffer = ""; $depth++; } elseif( $this->_input[$i] == '}' ) { $filters = explode( ".", $buffer ); $newoutput[$parent][] = $filters[0]; if( count( $filters ) > 1 ) { $key = $filters[0]; array_shift( $filters ); foreach( $filters AS $filter ) { $newoutput[$parent][$key][] = $filter; } } $buffer = ""; $depth--; } else { $buffer .= $this->_input[$i]; if( $i == strlen( $this->_input )-1 ) { if( strlen( $buffer ) ) { if( $depth == 0 ) { $filters = explode( ".", $buffer ); $newoutput[$filters[0]] = []; if( count( $filters ) > 1 ) { $key = $filters[0]; array_shift( $filters ); foreach( $filters AS $filter ) { $newoutput[$key][] = $filter; } } $parent = $buffer; } else { $filters = explode( ".", $buffer ); $newoutput[$parent][] = $filters[0]; if( count( $filters ) > 1 ) { $key = $filters[0]; array_shift( $filters ); foreach( $filters AS $filter ) { $newoutput[$parent][$key][] = $filter; } } } } } } } $this->_fields = array_keys( $newoutput ); $this->_parssed = $newoutput; } |