2013-02-06 35 views
11

GitHub एपीआई में में सभी फ़ोल्डर और फ़ाइलें लाओ, मैं रिकर्सिवली भंडार के पेड़ के सभी लाने के लिएGitHub एपीआई: एकल प्राप्त अनुरोध

https://api.github.com/repos/owner/repo/git/trees/master?recursive=1

की GET अनुरोध जारी कर सकते हैं। जबकि recursive=1 टुकड़ा मेरे भंडार में हर निर्देशिका के लिए एक नया GET अनुरोध करने के लिए करने से रोकता है

[...] 
{ 
    "mode": "100644", 
    "type": "blob", 
    "sha": "abc1234", 
    "path": "path/to/file.txt", 
    "size": 104361, 
    "url": "https://api.github.com/repos/owner/repo/git/blobs/abc1234" 
}, 
[...] 

: मुझे निर्देशिका के सभी देने के अलावा, यह मेरे यूआरएल है कि मैं व्यक्तिगत फ़ाइलों को डाउनलोड करने का उपयोग कर सकते देता है , मुझे अभी भी हर फाइल के लिए एक व्यक्तिगत कॉल करना है। मैंने GitHub API Docs देखा है, लेकिन वे ऐसा करने का कोई तरीका नहीं पेश करते हैं। यह बहुत संभावना है कि सभी फाइलों और फ़ोल्डर्स को एक ही अनुरोध में लाने का कोई तरीका नहीं है, लेकिन मैं यह पूछने के लिए यहां पूछना चाहता हूं कि मेरे पास कोई दूसरा विकल्प नहीं है।

+0

कृपया कुछ जानकारी दें कि आपको सभी फाइलों की आवश्यकता क्यों है। क्या आप उन्हें कुछ सर्वर साइड एप्लिकेशन पर उपयोग करते हैं, या इसे ब्राउजर में कहा जाता है? – jmruc

+0

मुझे उन्हें अपनी संबंधित वेबसाइट पर प्रदर्शित करने के लिए भंडार में सभी फ़ाइलों को आयात करने की आवश्यकता है। यह दस्तावेज फ़ाइलों का संग्रह है जो गिट के माध्यम से अद्यतन किए जाते हैं, और वेब साइट में आयात किए जाते हैं। – Scott

+0

आयात कैसे किया? आपको एपीआई का उपयोग करने और ज़िप डाउनलोड करने की आवश्यकता क्यों नहीं है, या सिर्फ परियोजना को क्लोन करें? – jmruc

उत्तर

7

एक अनुरोध के साथ यह करने के लिए एक ही रास्ता एक संग्रह के रूप मौजूदा सामग्री प्राप्त करने के लिए है: http://developer.github.com/v3/repos/contents/#get-archive-link

वास्तव में, यह 2 अनुरोध है, क्योंकि प्रारंभिक प्रतिक्रिया एक 302 रीडायरेक्ट है।

1

आपको एपीआई द्वारा प्रदान किए गए प्रत्येक यूआरएल के लिए व्यक्तिगत GET एस बनाना होगा। आपको हेडर को 'ईटाग' या 'लास्ट-संशोधित' मानों के लिए प्राप्त प्रतिक्रियाओं पर जांच करनी चाहिए और जब भी आपकी वेबसाइट पूछे जाने पर फ़ाइल को फिर से डाउनलोड करने से रोकने के लिए उन लोगों का उपयोग करें। मान लीजिए कि सामग्री बदल गई है, आप अपना ratelimit भी बचाएंगे।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^