GitHub页面上的正确JSON API格式

时间:2019-06-03 02:53:38

标签: json rest api github

我正在寻找创建一个静态JSON API,并将其托管在GitHub Pages上,以便可以公开使用。据我了解,我只需要一个包含数据的JSON文件,并将其发布到GitHub页面后,就可以从以下URL进行访问:

http://username.github.io/repo_name/json_file_name

这是我的JSON文件,其中包含一些数据。

[
  {
    "id": "0001",
    "name": "Walleye",
    "scientific": "Sander Vitreus",
    "environment": "Fresh Water",
    "climate": {
      "min": "",
      "max": ""
    },
    "depth": {
      "min": "0",
      "max": "27",
      "avMin": "",
      "avMax": ""
    },
    "length": {
      "common": "54",
      "max": "107"
    },
    "weight": {
      "common": "",
      "max": "11.3"
    },
    "maxAge": "29",
    "description": "Occurs in lakes, pools, backwaters, and runs of medium to large rivers. Frequently found in clear water, usually near brush..."
  },
  {
    "id": "0002",
    "name": "Northern Pike",
    "scientific": "Esox Lucius",
    "environment": "Fresh Water",
    "climate": {
      "min": "10",
      "max": "28",
    },
    "depth": {
      "min": "0",
      "max": "30",
      "avMin": "1",
      "avMax": "5"
    },
    "length": {
      "common": "55",
      "max": "137"
    },
    "weight": {
      "common": "",
      "max": "28.4"
    },
    "maxAge": "30",
    "description": "Occurs in clear vegetated lakes, quiet pools and backwaters of creeks and small to large rivers..."
  }
]

我想知道的是如何通过URL访问我的API。我了解http://username.github.io/repo_name/json_file_name/GET列出我数据中所有鱼类的清单。

我怎么GET只是一条鱼?例如,如果我想返回ID为0001的角膜白斑,我可以做http://username.github.io/repo_name/json_file_name/0001甚至是http://username.github.io/repo_name/json_file_name/walleye吗?我的JSON格式正确吗?还是我的存储库中需要一个单独的URL映射文件?

2 个答案:

答案 0 :(得分:0)

根据我的理解(“ Utilize Github Pages as JSON API”),GitHub将允许您使用contentType application+json来获取json文件的全部内容

就是这样。

它没有任何其他用途,这意味着:一旦拥有了完整的json内容,就可以使用jq for instance处理它以从中提取所需的相关数据。


OP A.Burg添加in the comments

  

我决定使用LoopBacknode.js来构建API,并使用MongoDB来存储数据库。
  我很可能会使用Heroku来托管API。

答案 1 :(得分:0)

Jekyll解决此问题的另一种方法是每个项目使用一页,并使用单独的“索引”页来获取所有这些页。

有效地,每条鱼都会成为jekyll博客文章,并且您的索引会编译所有这些文章。

绝对有可能为这些文件生成.json文件。

如果您真的希望从巨型索引文件开始并将其拆分,我认为唯一合理的方法是编写一个小脚本,该脚本生成您在推送之前便已运行的所有页面。