从Github Pages提供JSON数据

时间:2016-08-29 05:30:24

标签: json api github repository github-pages

我在github上有一个存储库,它在存储库的根目录中包含许多csv,json,yml数据文件。

如何使用Github Pages来提供这些文件?

因此,例如:当我转到http://username.github.io/reponame/后跟

  • /posts - 提供 posts.json 文件的内容
  • /users - 提供 users.json 文件的内容
  • /comments - 提供 comments.json 文件的内容
  • /posts.csv - 提供 posts.csv 文件的内容

4 个答案:

答案 0 :(得分:9)

您只需要在存储库中添加.json个文件,就可以像普通的JSON API一样访问它们

在以下存储库username.github.io/reponame中添加以下文件

<强> posts.json

[
  {"id": 1, "title": "Title 1"},
  {"id": 2, "title": "Title 2"}
]

<强> users.json

[
  {"name": "abc", "email": "abc@example.com"},
  {"name": "xyz", "email": "xyz@example.com"}
]

<强> comments.json

[
  {"post_id": "1", "text": "Comment 1"},
  {"post_id": "2", "text": "Comment 2"}
]

<强> posts.csv

id,title
1,Title 1
2,Title 2

使用

访问它们
  • http://username.github.io/reponame/posts.json
  • http://username.github.io/reponame/users.json
  • http://username.github.io/reponame/comments.json
  • http://username.github.io/reponame/posts.csv

答案 1 :(得分:2)

您可以创建index.json而不是index.html来获取application/json; charset=utf-8标题。

即创建: - posts/index.jsonhttp://username.github.io/reponame/posts/, - users/index.jsonhttp://username.github.io/reponame/users/, 等

请注意,作为目录,没有尾部斜杠(http://username.github.io/reponame/posts)的访问将返回301重定向到具有尾部斜杠的相同路径。也就是说,它可以运行,但是您的客户需要遵循重定向(默认情况下curl不会,curl --location会这样做)并且由于额外的往返而略微变慢...

有关工作示例,请参阅https://github.com/cben/sandbox/tree/master/json目录(在https://cben.github.io/sandbox/json/处提供)。

P.S。避免在一个目录中放置多个index.*README*文件;当我在index.json旁边添加一个README.md时,README赢了并在json/得到了服务,所以我不得不将它重命名为其他东西。

答案 2 :(得分:1)

此类型的网址(例如:/ posts)仅适用于html文件。你可以命名你的json文件 posts.html 并设置它的前面这样的事情:

class MyGraphicsTextItem : public QGraphicsTextItem
{

// ...

protected:

    virtual void keyPressEvent(QKeyEvent* e) override
    {
        if (e->key() != Qt::Key_Return)
        {
            // let parent implementation handle the event
            QGraphicsTextItem::keyPressEvent(e);
        }
        else
        {
            // ignore the event and stop its propagation
            e->accept();
        }
    }
};

然后,您将通过 / posts / posts / 访问您的文件。

唯一的缺点是返回的文件是 /posts/index.html ,其中使用的是--- layout: null permalink: /posts/ --- { "variable": "value" } mime类型,而不是预期的Content-Type: text/html

答案 3 :(得分:0)

我正在添加有关如何从github使用json的代码块:

function logResults(json) {
    console.log(json)
}

$.ajax({
    url: "https://raw.githubusercontent.com/cben/sandbox/master/json/index.json",
    dataType: "json"
}).done(function(result){
    console.log(result);
});

请在jfiddle中查看示例: https://jsfiddle.net/v_alishauskaite/dxm8cvkL/1/