我正在寻找创建一个静态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映射文件?
答案 0 :(得分:0)
根据我的理解(“ Utilize Github Pages as JSON API”),GitHub将允许您使用contentType application+json
来获取json文件的全部内容
就是这样。
它没有任何其他用途,这意味着:一旦拥有了完整的json内容,就可以使用jq
for instance处理它以从中提取所需的相关数据。
我决定使用LoopBack用
node.js
来构建API,并使用MongoDB来存储数据库。
我很可能会使用Heroku来托管API。
答案 1 :(得分:0)
Jekyll解决此问题的另一种方法是每个项目使用一页,并使用单独的“索引”页来获取所有这些页。
有效地,每条鱼都会成为jekyll博客文章,并且您的索引会编译所有这些文章。
绝对有可能为这些文件生成.json文件。
如果您真的希望从巨型索引文件开始并将其拆分,我认为唯一合理的方法是编写一个小脚本,该脚本生成您在推送之前便已运行的所有页面。