2012-02-14 11 views
5

GitHub repo'da barındırılan bir dosyanın içeriğini almam gerekir. Onunla birlikte meta verilerle bir JSON yanıtı almayı tercih ederim. Sadece {"message":"Not Found"} cevabı almak için cURL ile çok sayıda URL denedim. Sadece URL yapısına ihtiyacım var. Eğer önemliyse, GitHub'daki bir organizasyondan.GitHub API'leri aracılığıyla dosya nasıl alınır

http://api.github.com/repos/<organization>/<repository>/git/branches/<branch>/<file> 
+1

bkz http://stackoverflow.com/questions/9240961/github-jsonp-source-code-api/9241535#9241535 – nulltoken

+0

Basit bir JSON yanıtı için üç istek var mı? İyi yasalar. Hiç sezgisel değil. Elbette daha zarif bir yol var. –

+0

Bu, muhtemelen API'lerinin en zayıf bitlerinden biridir. Ağaçlar API'sini kullanarak (dokümanlardaki Git Verisinde) yapıya gidebilirsiniz. Bunu kullanabilmek için bir şeye ihtiyacınız olacak. Bunu repo şubelerinden kazabilirsin. Belki raw.github.com'u bu şekilde kullanmanız daha mı kolay? raw.github.com/:user/:repo/:branch/:filename. Bir dosyanın var olup olmadığını anlamak ve sonra almak için bu iki yaklaşımı kolayca birleştirebilirsiniz. –

cevap

11

(http://developer.github.com/v3/repos/contents/ bulunan) açıklaması şöyle diyor:

/repo /: sahibi /: Repo/içindekiler /: yol

An İşte işe gereken, ancak böyle yapıyor ajax kodu olacak:

$.ajax({ 
    url: readme_uri, 
    dataType: 'jsonp', 
    success: function(results) 
    { 
     var content = results.data.content; 
    }); 

doğru/repo yoluyla readme_uri değiştirin /: sahibi /: repo/içindekiler /: yol.

+0

Bu yeni mi? Yemin ederim sorduğumda burada değildi. Bunun için tüm dev sayfalara baktım. Teşekkürler. –

+2

GitHub, Base64 ... – taseenb

+9

@ taseenb'de kodlanmış bir dosya içeriği gönderiyor gibi görünüyor. Https: //raw.githubusercontent.com/: owner /: repo/master /: path' raw (ikili, Base64 değil) –

İlgili konular