Правильный формат JSON API на страницах GitHub - PullRequest
1 голос
/ 03 июня 2019

Я хочу создать статический API-интерфейс JSON и разместить его на страницах GitHub, чтобы его можно было публично использовать. Насколько я понимаю, все, что мне нужно, это файл 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..."
  }
]

Что мне интересно, так это то, как мой API будет доступен через URL. Я понимаю, что 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 голосов
/ 04 июня 2019

Альтернативный способ решить эту проблему с помощью Jekyll - использовать 1 страницу на элемент и использовать отдельную страницу «указатель» для получения всех этих страниц.

Фактически каждая рыба становится постом в блоге jekyll, и ваш индекс компилирует все эти сообщения.

Определенно возможно создать файлы .json для них.

Если вы действительно предпочитаетечтобы начать с гигантского индексного файла и разделить его, я думаю, что единственный разумный способ - написать небольшой скрипт, который генерирует все страницы, которые вы просто запускаете, прежде чем нажать.

0 голосов
/ 03 июня 2019

Из того, что я понимаю (" Использовать Github Pages как JSON API "), GitHub позволит вам вернуть все содержимое файла json, используя contentType application+json

Вот и все.

Это больше ничего не даст, а это значит, что, получив полный контент json, вы можете обработать его, чтобы извлечь из него нужные данные, используя jq например .


ОП А.Бург добавляет в комментарии :

Я решил использовать LoopBack для создания API с node.js и использовать MongoDB для базы данных.
Я, скорее всего, буду использовать Heroku дляхост API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...