Che Posted August 17, 2022 Report Posted August 17, 2022 Am un url de genul: https://api.mywebsite.com/event/43243255/category1/optional_subcategory2 43243255 este id-ul acelui event. Raspunsul este de tip json pe care il parsez in Python. Problema este ca aceste events sunt ordonate pe zile, si fiecare zi are vreo 30.000+ de events si pentru fiecare in parte tu trebuie sa faci cate un request. Si dureaza de m-am plictisit si am oprit scriptul. Cum as putea sa iau toate acele events cu un singur request? Am incercat in loc de id sa pun * dar da eroare in loc de json ca raspuns. Aveti vreo idee? Ma gandesc ca doar nu are nimeni pus pe site un miliard de fisiere json pentru fiecare accesare in parte, fiecare grupate pe directoare si subdirectoare ci cred ca este unul singur. Cum as putea sa accesez toate elementele din acel json la un singur query? Mai era un site care avea tot asa ceva de genul doar ca era myeventid=12432342 si daca schimbai in myeventid= sau in myeventid=* (nu mai stiu exact care din ele) iti dadea in format json toate datele la o singura accesare de asta am incercat sa fac la fel si in acest caz. Am pus acest titlu fiindca nu stiu cum se numeste ce vreau eu sa fac. Se poate schimba in cel corespunzator daca nu este acesta. Multumesc mult! Quote
Moderators Dragos Posted August 17, 2022 Moderators Report Posted August 17, 2022 Nu exista un standard pentru cum sa faci query la o baza de date si sa-ti afiseze JSON-uri. Fiecare site are logica lui pentru generarea JSON-urilor in functie de ce au ei nevoie. Incearca urmatoarele: vezi daca poti sa parcurgi JSON-ul dintr-o pagina principala care iti afiseaza toate ID-urile evenimentelor si care poate ofera paginare vezi documentatia de la aplicatie, poate exista vreo metoda pe care nu ai gasit-o pentru query vezi daca aplicatia nu poate cumva sa-ti trimita tie evenimentele la X timp catre un endpoint de-al tau incearca sa contactezi service provider-ul / creatorul aplicatiei sa vezi care ar fi cea mai buna optiune pentru parcurgerea evenimentelor Quote
yoyois Posted August 17, 2022 Report Posted August 17, 2022 (edited) Un alt motiv pentru care multe requesturi dureaza atat de mult e ca (presupun) le faci sequential. O implementare multithreaded, care face requesturi in paralel (aka 1000 de eventuri deodata) ar fi mult mai rapida. Asa iti poti satura conexiunea, manage tcp sockets, etc. Eu am avut cam 2x speedup la download 70-80 fisiere mai mari (20 mb) Nota: Vezi daca suporta http2. Edited August 17, 2022 by yoyois Quote
Che Posted August 17, 2022 Author Report Posted August 17, 2022 @Dragos Nu am cum sa fac nimic din ce mi-ai zis fiindca nu exista un query principal sau altceva care sa fie pe prima pagina ci asta este chiar pe prima pagina intr-un fel de meniu al site-ului. Iar celelalte nu am cum sa le fac fiindca este un API gasit de mine intr-un site, nu il primesc de la vreun provider. @yoyois Ma gandeam sa fac asta dar sa nu fiu blocat pe IP sau pentru DDoS attack si nici nu vreau sa pice site-ul din cauza asta si pe urma sa mai patesc ceva. Quote