├── LICENSE ├── proxy └── v1 │ ├── GetInstitutes │ └── index.php │ ├── GetPrivacyStatement │ └── index.php │ ├── GetTrainings │ └── index.php │ ├── GetPeriodTerms │ └── index.php │ ├── GetPeriodData │ └── index.php │ ├── GetMessages │ └── index.php │ └── GetCalendarData │ └── index.php └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Ruzsa Gergely 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /proxy/v1/GetInstitutes/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /proxy/v1/GetPrivacyStatement/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /proxy/v1/GetTrainings/index.php: -------------------------------------------------------------------------------- 1 | $userlogin, 38 | "Password" => $loginpass 39 | ); 40 | 41 | // Create CURL instance 42 | $curl = curl_init(); 43 | // CURL settings 44 | curl_setopt($curl, CURLOPT_URL, $url); 45 | curl_setopt($curl, CURLOPT_HTTPHEADER, array( 46 | 'Content-Type: application/json' 47 | )); 48 | curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); 49 | curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 50 | curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 51 | 52 | // Executing Curl 53 | $result = curl_exec($curl); 54 | if (!$result) { 55 | $result = null; 56 | } 57 | curl_close($curl); 58 | 59 | echo $result; 60 | } 61 | 62 | ?> -------------------------------------------------------------------------------- /proxy/v1/GetPeriodTerms/index.php: -------------------------------------------------------------------------------- 1 | $userlogin, 43 | "Password" => $loginpass, 44 | "CurrentPage" => $currentPage 45 | ); 46 | 47 | // Create CURL instance 48 | $curl = curl_init(); 49 | // CURL settings 50 | curl_setopt($curl, CURLOPT_URL, $url); 51 | curl_setopt($curl, CURLOPT_HTTPHEADER, array( 52 | 'Content-Type: application/json' 53 | )); 54 | curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); 55 | curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 56 | curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 57 | 58 | // Executing Curl 59 | $result = curl_exec($curl); 60 | if (!$result) { 61 | $result = null; 62 | } 63 | curl_close($curl); 64 | 65 | echo $result; 66 | } 67 | 68 | ?> -------------------------------------------------------------------------------- /proxy/v1/GetPeriodData/index.php: -------------------------------------------------------------------------------- 1 | $userlogin, 44 | "Password" => $loginpass, 45 | "CurrentPage" => $currentPage, 46 | "PeriodTermID" => $periodID 47 | ); 48 | 49 | // Create CURL instance 50 | $curl = curl_init(); 51 | // CURL settings 52 | curl_setopt($curl, CURLOPT_URL, $url); 53 | curl_setopt($curl, CURLOPT_HTTPHEADER, array( 54 | 'Content-Type: application/json' 55 | )); 56 | curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); 57 | curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 58 | curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 59 | 60 | // Executing Curl 61 | $result = curl_exec($curl); 62 | if (!$result) { 63 | $result = null; 64 | } 65 | curl_close($curl); 66 | 67 | echo $result; 68 | } 69 | 70 | ?> -------------------------------------------------------------------------------- /proxy/v1/GetMessages/index.php: -------------------------------------------------------------------------------- 1 | $userlogin, 52 | "Password" => $loginpass, 53 | "MessageID" => $messageid, 54 | "MessageSortEnum" => $messageSortNum, 55 | "CurrentPage" => $currentPage 56 | ); 57 | 58 | //Create CURL instance 59 | $curl = curl_init(); 60 | //CURL settings 61 | curl_setopt($curl, CURLOPT_URL, $url); 62 | curl_setopt($curl, CURLOPT_HTTPHEADER, array( 63 | 'Content-Type: application/json' 64 | )); 65 | curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); 66 | curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 67 | curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 68 | 69 | //Execute 70 | $result = curl_exec($curl); 71 | if (!$result) { 72 | $result = null; 73 | } 74 | curl_close($curl); 75 | 76 | echo $result; 77 | } 78 | 79 | ?> -------------------------------------------------------------------------------- /proxy/v1/GetCalendarData/index.php: -------------------------------------------------------------------------------- 1 | $userlogin, 80 | "Password" => $loginpass, 81 | "CurrentPage" => $currentPage, 82 | "needAllDaylong" => $alldaylong, 83 | "Time" => $time, 84 | "Exam" => $exam, 85 | "Task" => $task, 86 | "Apointment" => $appointment, 87 | "RegisterList" => $registerlist, 88 | "Consultation" => $consultation, 89 | "startDate" => "/Date($startDate)/", 90 | "endDate" => "/Date($endDate)/" 91 | ); 92 | 93 | //Create CURL instance 94 | $curl = curl_init(); 95 | //CURL settings 96 | curl_setopt($curl, CURLOPT_URL, $url); 97 | curl_setopt($curl, CURLOPT_HTTPHEADER, array( 98 | 'Content-Type: application/json' 99 | )); 100 | curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); 101 | curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 102 | curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 103 | 104 | //Execute 105 | $result = curl_exec($curl); 106 | if (!$result) { 107 | $result = null; 108 | } 109 | curl_close($curl); 110 | echo $result; 111 | } 112 | ?> -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Poszeidon és Neptun API 2 | 3 | ## Update 4 | Elindult az [Atlantisz](https://github.com/RuzsaGergely/Atlantisz) projekt, amelynek keretében egy proxy alá veszem a Krétát és a Neptunt. Természetesen rendszer és proxy dokumentációval ellátva. (Az átfogó Kréta dokumentáció már fent van) 5 | 6 | ## Bevezető 7 | 8 | A lentebb olvasható információkat a hivatalos Neptun appból szedtem ki. A teszteléseket manuálisan végeztem Postman segítségével. A proxy-t PHP-ban írtam/írom, mert... mazoista(?) vagyok. 9 | 10 | Ha a Poszeidon proxyt szeretnéd használni, akkor a Releasekben találsz egy előre elkészített Docker konténert. 11 | 12 | ## Neptun API 13 | 14 | ### Intézmények lekérése 15 | 16 | Az intézmények listáját erről az URL-ről lehet lekapni POST metódussal: 17 | 18 | ``` 19 | https://mobilecloudservice.cloudapp.net/MobileServiceLib/MobileCloudService.svc/GetAllNeptunMobileUrls 20 | ``` 21 | 22 | Ennek van annyi szépséghibája hogy, a szerver amiről a Neptun app lekéri az iskolák listáját annyira el van hanyagolva hogy most (2019-ben) 3 éve lejárt SSL tanúsítványt használnak, de mindeközben követeli a HTTPS használatát. Ki is halt tőle a Postman... 23 | 24 | Ha minden jól ment (és sikerült áthidalni az SSL-es problémát) akkor egy, az E-krétához hasonló listát kell hogy kapjunk. Egy kis részlet belőle: 25 | 26 | ```json 27 | ... 28 | { 29 | "Languages": "HU,EN,DE,FR", 30 | "Name": "Budapesti Gazdasági Egyetem", 31 | "NeptunMobileServiceVersion": 0, 32 | "OMCode": "FI82314", 33 | "Url": "https://neptun3.uni-bge.hu/hallgato/MobileService.svc" 34 | }, 35 | { 36 | "Languages": "HU,EN,DE", 37 | "Name": "Budapesti Metropolitan Egyetem", 38 | "NeptunMobileServiceVersion": 0, 39 | "OMCode": "FI33842", 40 | "Url": "https://neptunweb1.metropolitan.hu/hallgato/MobileService.svc" 41 | }, 42 | ... 43 | ``` 44 | 45 | ### Adatvédelmi nyilatkozat lekérése 46 | 47 | Az adatvédelmi tájékoztatót így lehet lekérni (újfent POST methoddal). 48 | 49 | ``` 50 | https:////MobileService.svc/GetPrivacyStatement 51 | ``` 52 | 53 | Érdekes módon nem minden egyetemnek/főiskolának van adatvédelmi nyilatkozata rögzítve a Neptun rendszerben így például a BME egy `{"URL": null}`-t fog adni míg mondjuk egy Tan kapuja `{"URL": "https://www.tkbf.hu/foiskola/adatvedelmi-tajekoztato"}`-t. 54 | 55 | ### Egy fiókhoz tartozó képzések lekérése 56 | 57 | A képzéseket így lehet lekérni, természetesen POST methoddal. 58 | 59 | ``` 60 | https:////MobileService.svc/GetTrainings 61 | ``` 62 | 63 | Az elküldött lekérésben ezek szerepelnek: 64 | 65 | ```json 66 | { 67 | "OnlyLogin":false, 68 | "TotalRowCount":-1, 69 | "ExceptionsEnum":0, 70 | "UserLogin":"dummy", 71 | "Password":"dummypass", 72 | "NeptunCode":null, 73 | "CurrentPage":0, 74 | "StudentTrainingID":null, 75 | "LCID":1038, 76 | "ErrorMessage":null, 77 | "MobileVersion":"1.5", 78 | "MobileServiceVersion":0 79 | } 80 | ``` 81 | 82 | - OnlyLogin => Nem teljesen értem a koncepciót mögötte, de ha "true"-ra állítom akkor nem kapom vissza a képzéseket. 83 | - TotalRowCount => A -1 itt végtelent jelent szerintem, tehát bármennyi képzés van, ki kell hogy tudja adni. 84 | - ExceptionsEnum => ha rájövök mi az, leírom. 85 | - UserLogin => Neptunos felhasználónév. 86 | - Password => Neptunos jelszó. 87 | - NeptunCode => Ezt a bejelentkezés alapján kapjuk vissza, bár nem értem miért lehet elküldeni. 88 | - CurrentPage => A lekérés eredményének aktuális oldala (pl. ha sok eredmény van, nem fér ki egy oldalra mert... csak...). 89 | - StudentTrainingID => Ezt a bejelentkezés alapján kapjuk vissza, bár nem értem miért lehet elküldeni. 90 | - LCID => Windows Language Code Identifier. 1038 decimálisban ami hexadecimálisban 0x040E. Ez a [Windows LCID dokumentáció](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f) szerint a 'hu-HU' tehát magyar kódolás. 91 | - ErrorMessage => Nem értem a koncepciót mögötte (lásd később a verdiktnél). 92 | - MobileVersion => Mivel az appból szedtem ki, így szinte biztos vagyok benne hogy, az a app verziójára utal 93 | - MobileServiceVersion => Nem értem a koncepciót mögötte (lásd később a verdiktnél). 94 | 95 | **Verdikt:** Megfigyeltem hogy, ha csak a `UserLogin` és `Password` mezőket hagyom bent a lekérésben akkor is hibátlanul visszakapom a képzéseket. *Ipso facto, a program által használt lekérésnek a 3/4-de szemét.* 96 | 97 | ### Üzenetek lekérése 98 | 99 | Az üzeneteket így lehet lekérni, természetesen POST methoddal. 100 | 101 | ``` 102 | https:////MobileService.svc/GetMessages 103 | ``` 104 | 105 | Az elküldött lekérésben ezek szerepelnek: 106 | 107 | ```json 108 | { 109 | "TotalRowCount":-1, 110 | "ExceptionsEnum":0, 111 | "MessageID":0, 112 | "MessageSortEnum":0, 113 | "UserLogin":"dummy", 114 | "Password":"dummypass", 115 | "NeptunCode":"DUMMY", 116 | "CurrentPage":0, 117 | "StudentTrainingID":123456789, 118 | "LCID":1038, 119 | "ErrorMessage":null, 120 | "MobileVersion":"1.5", 121 | "MobileServiceVersion":0 122 | } 123 | ``` 124 | 125 | A fentebb írtak itt is relevánsak. A `UserLogin` és a `Password` szükséges csak. 126 | 127 | A `MessageID`-val tudunk egyetlen üzenetre rámutatni. Ha 0-ás akkor minden üzenetet kilistáz az adott oldalon (lásd `CurrentPage` ), de ha megadunk egy ID-t neki (pl.: 866172401) akkor azt az egy üzenetet fogja kiírni. 128 | 129 | Emellett fontos a `CurrentPage` is mert ha több oldalon keresztül van üzenet akkor ezzel tudjuk módosítani hogy, melyik oldalról szeretnénk lekérni a leveleket. 130 | 131 | A `MessageSortEnum` paraméterrel tudjuk állítani azt hogy a leveleket milyen módon rendezze. 132 | 133 | - 0 => Időrendben: Legújabbtól a legrégebbi üzenetig. 134 | - 1 => Időrendben: Legrégebbitől a legújabb üzenetig. 135 | - 2 => Küldő neve szerint: Z-A 136 | - 3 => Küldő neve szerint: A-Z 137 | - 4 és afelett => Nem tudtam egyértelműen megállapítani. (befejezetlen funkció?) 138 | 139 | Rövidítve valahogy így nézhet ki a lekérés: 140 | 141 | ```json 142 | { 143 | "MessageID":0, 144 | "MessageSortEnum": 0, 145 | "UserLogin":"dummy", 146 | "Password":"dummy", 147 | "CurrentPage":0 148 | } 149 | ``` 150 | 151 | ### Naptár lekérése 152 | 153 | A naptárt így lehet lekérni, természetesen POST methoddal. 154 | 155 | ``` 156 | https:////MobileService.svc/GetCalendarData 157 | ``` 158 | 159 | Az elküldött lekérésben ezek szerepelnek: 160 | 161 | ```json 162 | { 163 | "needAllDaylong":false, 164 | "TotalRowCount":-1, 165 | "ExceptionsEnum":0, 166 | "Time":true, 167 | "Exam":true, 168 | "Task":true, 169 | "Apointment":true, 170 | "RegisterList":true, 171 | "Consultation":true, 172 | "startDate":"\/Date(1561922719265)\/", 173 | "endDate":"\/Date(1588274719265)\/", 174 | "entityLimit":0, 175 | "UserLogin":"dummy", 176 | "Password":"dummypass", 177 | "NeptunCode":"DUMMY", 178 | "CurrentPage":0, 179 | "StudentTrainingID":123456789, 180 | "LCID":1038, 181 | "ErrorMessage":null, 182 | "MobileVersion":"1.5", 183 | "MobileServiceVersion":0 184 | } 185 | ``` 186 | 187 | A fentiek itt is relevánsak, habár nem csak a `UserLogin` és `Password` fog itt kelleni. A `Time`, `Exam`, `Task`, `Appointment`, `RegisterList`, `Consultation` kulcsok true/false értékek. Ezekkel lehet szűrni a naptár tartalmát. A `startDate` és `endDate` határozza meg a naptár időintervallumját. Fontos kihangsúlyozni hogy, a dátumok Epoch időben van megadva. ([Itt egy konverter hozzá](https://www.online-toolz.com/tools/date-functions.php)). Az `entityLimit` nem tudom hogy, mit csinál. Ha 0 akkor visszaad értékeket, más egyéb értékre semmit se ad vissza. (rossz implementáció?) 188 | 189 | Rövidítve valahogy így nézhet ki a lekérés: 190 | 191 | ```json 192 | { 193 | "needAllDaylong":false, 194 | "Time":true, 195 | "Exam":true, 196 | "Task":true, 197 | "Apointment":true, 198 | "RegisterList":true, 199 | "Consultation":true, 200 | "startDate":"\/Date(1561922719265)\/", 201 | "endDate":"\/Date(1588274719265)\/", 202 | "UserLogin":"dummy", 203 | "Password":"dummypass" 204 | } 205 | ``` 206 | 207 | ### Időszakok lekérése 208 | 209 | Az időszakokat így lehet lekérni, természetesen POST methoddal. 210 | 211 | ``` 212 | https:////MobileService.svc/GetPeriodTerms 213 | ``` 214 | 215 | Az elküldött lekérésben ezek szerepelnek: 216 | 217 | ```json 218 | { 219 | "TotalRowCount":-1, 220 | "ExceptionsEnum":0, 221 | "UserLogin":"dummy", 222 | "Password":"dummypass", 223 | "NeptunCode":null, 224 | "CurrentPage":0, 225 | "StudentTrainingID":null, 226 | "LCID":1038, 227 | "ErrorMessage":null, 228 | "MobileVersion":"1.5", 229 | "MobileServiceVersion":0 230 | } 231 | ``` 232 | 233 | A fentebb írtak itt is relevánsak. A `UserLogin` és a `Password` szükséges csak, de a `CurrentPage` hasznos lehet felhasználáskor. 234 | 235 | Rövidítve valahogy így nézhet ki: 236 | 237 | ```json 238 | { 239 | "UserLogin":"dummy", 240 | "Password":"dummypass", 241 | "CurrentPage":0 242 | } 243 | ``` 244 | 245 | ### Időszak részleteinek lekérése 246 | 247 | Az időszakok részeit így lehet lekérni, természetesen POST methoddal. 248 | 249 | ``` 250 | https:////MobileService.svc/GetPeriods 251 | ``` 252 | 253 | Az elküldött lekérésben ezek szerepelnek: 254 | 255 | ```json 256 | { 257 | "PeriodTermID":70619, 258 | "TotalRowCount":-1, 259 | "ExceptionsEnum":0, 260 | "UserLogin":"dummy", 261 | "Password":"dummypass", 262 | "NeptunCode":null, 263 | "CurrentPage":0, 264 | "StudentTrainingID":null, 265 | "LCID":1038, 266 | "ErrorMessage":null, 267 | "MobileVersion":"1.5", 268 | "MobileServiceVersion":0 269 | } 270 | ``` 271 | 272 | A fentiek itt is relevánsak, annyi kiegészítéssel hogy, a `UserLogin` és a `Password` kulcs mellett szükséges egy `PeriodTermID` megadása is. Ezzel tudjuk meghatározni hogy, melyik időszak információira vagyunk kíváncsiak. 273 | 274 | Rövidítve valahogy így nézhet ki: 275 | 276 | ```json 277 | { 278 | "PeriodTermID":70619, 279 | "ExceptionsEnum":0, 280 | "UserLogin":"dummy", 281 | "Password":"dummypass", 282 | "CurrentPage":0 283 | } 284 | ``` 285 | 286 | ## Poszeidon használata 287 | 288 | ### Bevezető 289 | 290 | Ezt a kis proxyt azért írtam hogy, a jövőben egyszerűben lehessen a Neptun rendszerét használni, ezzel elősegítve a különféle appokat, webappokat és gadgetek fejlesztését. 291 | 292 | Az összes lekérés `POST` metódussal történik, valamint a Poszeidon által visszaadott respone megfelel a Neptun API responsenak, azt nem szűri. 293 | 294 | ### Intézmények lekérése 295 | 296 | ``` 297 | http://localhost/poszeidon/proxy/v1/GetInstitutes/ 298 | ``` 299 | 300 | Ennek a lekéréséhez nem kell semmilyen adatot elküldeni (nem is fogad/dolgoz fel). 301 | 302 | ### Adatvédelmi nyilatkozat lekérése 303 | 304 | ``` 305 | http://localhost/poszeidon/proxy/v1/GetPrivacyStatement/ 306 | ``` 307 | 308 | Ehhez a lekéréshez az alábbi adatokat kell megadni: 309 | 310 | ```json 311 | { 312 | "url": "https:////MobileService.svc" 313 | } 314 | ``` 315 | 316 | ### Egy fiókhoz tartozó képzések lekérése 317 | 318 | ``` 319 | http://localhost/poszeidon/proxy/v1/GetTrainings/ 320 | ``` 321 | 322 | Ehhez a lekéréshez az alábbi adatokat kell megadni: 323 | 324 | ```json 325 | { 326 | "url": "https:////MobileService.svc", 327 | "userlogin": "dummy", 328 | "password": "dummypass" 329 | } 330 | ``` 331 | 332 | ### Üzenetek lekérése 333 | 334 | ``` 335 | http://localhost/poszeidon/proxy/v1/GetMessages/ 336 | ``` 337 | 338 | Ehhez a lekéréshez az alábbi adatokat kell megadni: 339 | 340 | ```json 341 | { 342 | "url": "https:////MobileService.svc", 343 | "userlogin": "dummy", 344 | "password": "dummypass" 345 | } 346 | ``` 347 | 348 | Ez a lekérés az alapvető, viszont egy bővített változatban akár az egy levélre való szűrést, oldal változtatást és rendezést is be tudunk állítani. 349 | 350 | A bővített lekérés így néz ki: 351 | 352 | ```json 353 | { 354 | "url": "https:////MobileService.svc", 355 | "userlogin": "dummy", 356 | "password": "dummypass", 357 | "messageID": 0, 358 | "currentPage": 0, 359 | "messageSortNum": 0 360 | } 361 | ``` 362 | 363 | ### Naptár lekérése 364 | 365 | ``` 366 | http://localhost/poszeidon/proxy/v1/GetCalendarData/ 367 | ``` 368 | 369 | Ehhez a lekéréshez az alábbi adatokat kell megadni: 370 | 371 | ```json 372 | { 373 | "url": "https:////MobileService.svc", 374 | "userlogin": "dummy", 375 | "password": "dummypass" 376 | } 377 | ``` 378 | 379 | Ez a lekérés az alapvető, de sokkal több paramétert lehet módosítani. Egy bővített lekérés így néz ki: 380 | 381 | ```json 382 | { 383 | "url": "https:////MobileService.svc", 384 | "userlogin": "dummy", 385 | "password": "dummypass", 386 | "currentPage": 1, 387 | "allDayLong": true, 388 | "Time": false, 389 | "Exam": false, 390 | "Task": false, 391 | "Appointment": false, 392 | "RegisterList": false, 393 | "Consultation": false 394 | } 395 | ``` 396 | 397 | Az `AllDayLong` paramétert leszámítva az összesnek 'true' az alapvető értéke, valamint a `CurrentPage` az minden esetben 0. 398 | 399 | ### Időszakok lekérése 400 | 401 | ``` 402 | http://localhost/poszeidon/proxy/v1/GetPeriodTerms/ 403 | ``` 404 | 405 | Ehhez a lekéréshez az alábbi adatokat kell megadni: 406 | 407 | ```json 408 | { 409 | "url": "https:////MobileService.svc", 410 | "userlogin": "dummy", 411 | "password": "dummypass" 412 | } 413 | ``` 414 | 415 | Ha esetleg nem férne ki egy lekérésbe, mert annyi időszak van valamiért nyilvántartva akkor a `currentPage` kulcs hozzáadásával lehet szabályozni. 416 | 417 | ### Időszak részleteinek lekérése 418 | 419 | ``` 420 | http://localhost/poszeidon/proxy/v1/GetPeriodData/ 421 | ``` 422 | 423 | Ehhez a lekéréshez az alábbi adatokat kell megadni: 424 | 425 | ```json 426 | { 427 | "url": "https:////MobileService.svc", 428 | "userlogin": "dummy", 429 | "password": "dummypass", 430 | "periodID": "00000" 431 | } 432 | ``` 433 | 434 | Opcionálisan a `currentPage` kulcs itt is játszik, ha több oldalas lenne a lekérés eredménye. 435 | --------------------------------------------------------------------------------