Hirdetés

Új hozzászólás Aktív témák

  • trisztan94

    őstag

    Tárgytalan, teljesen elkerülte a figyelmem, hogy van egy COUNT endpointja az api-nak, amivel pont azt tudom csinálni amit akartam: lekérni az oldalmennyiséget.... :U :U

    Bocsesz.

    Egy pluginen dolgozom, ami küld egy REST kérést egy API felé.

    A trükkös rész az, hogy válaszként maximum 50 elemet kapok vissza oldalanként, hacsak nem mondom meg az uri-ban explicit, hogy hanyadik oldalról kérem a találatokat. Tehát pl. ha tudom, hogy amit keresek az a 151. elem a visszaadott adattömbben, akkor explicit megmondom az API-nak, hogy a 3. oldalról kérem a dolgokat.

    Szeretném ilyen 50 elemes oldalakra bontani az oldalt, viszont az a baj, hogy fogalmam sincs honnan tudnám meg, hogy összesen hány oldalnyi elem van.

    Ez egy példa response az API-tól:

    stdClass Object
    (
    [ids] => Array
    (
    [0] => air4304753
    [1] => air3432487
    [2] => air638963
    [3] => air803076
    [4] => air3738354
    [5] => air2285517
    [6] => air4029464
    [7] => air4099090
    [8] => air3939774
    [9] => air4084559
    [10] => air4118889
    [11] => air754158
    [12] => air4583121
    [13] => air3282714
    [14] => air4445915
    [15] => air1168152
    [16] => air2867116
    [17] => air2454422
    [18] => air4526092
    [19] => air4160250
    [20] => air4396985
    [21] => air577969
    [22] => air1721789
    [23] => air58076
    [24] => air1561140
    [25] => air206806
    [26] => air978130
    [27] => air1052042
    [28] => air822340
    [29] => air2858209
    [30] => air3181224
    [31] => air1499333
    [32] => air1364739
    [33] => air4358639
    [34] => air1186217
    [35] => air1213666
    [36] => air1011319
    [37] => air254844
    [38] => air3774080
    [39] => air742998
    [40] => air1732428
    [41] => air4119371
    [42] => air4316805
    [43] => air645091
    [44] => air206478
    [45] => air3439518
    [46] => air3698344
    [47] => air2070695
    [48] => air1721598
    [49] => air3062316
    )

    [queryType] => search
    [status] => 200
    [page] => 1
    [resultsPerPage] => 50
    [amtOfNights] => 0
    [sort] => default
    [isNearQuery] => 1
    [runtime] => 55
    [result] => Array
    ()};

    Látni, hogy visszakaptam 50 elemet, és meg is mondja, hogy ez a page 1.

    Ha beírok valami random számot page-nek, mondjuk 123-mat és azon már nincs adat, ez a response jön vissza:

    stdClass Object
    (
    [ids] => Array
    (
    )

    [queryType] => search
    [status] => 200
    [page] => 123
    [resultsPerPage] => 50
    [amtOfNights] => 0
    [sort] => default
    [isNearQuery] => 1
    [runtime] => 114
    [result] => Array
    (
    )

    )

    A kérdés:

    Hogyan tudom egyszerűen megtudni, hogy összesen hány oldal van amiben van még adat?

    Én arra gondoltam, hogy egy while(true) végtelen ciklusban elkezdem küldeni a kéréseket, és minden ciklusban amikor visszajön egy response, ellenőrzöm, hogy az ids tömb nem üres e. Ha igen, akkor paraszt módon ki break-elek a ciklusból.

    Ezzel azon kívül, hogy baromi gány, még az a problémám, hogy ahhoz, hogy egyáltalán megtudjam hány oldalnyi kontent van, le kell kérnem az EGÉSZ result setet, ami több másodperc alsó hangon...

    Másik alternatívám az, hogy csak next page és previous page gombokat rakok ki, aztán ha egy olyan oldalra lép amin már nincs adat, kap a user egy szomorú szmájlit. Ez viszont nem túl felhasználóbarát, szóval nem nagyon szeretném.

    Nincs erre valami szép megoldás?

Új hozzászólás Aktív témák