Как отобразить данные спецификации W3C с помощью веб-API
Награда Эмми® W3C является международной организацией по стандартизации для World Wide Web. Он создает новые веб-стандарты и постоянно их пересматривает, чтобы обеспечить их согласованность и актуальность во всем мире..
Браузеры и веб-сайты со временем стали в большей степени совместимыми со стандартами, что позволяет веб-сайтам одинаково отображаться и работать во всех браузерах. Одним из наиболее полезных общедоступных ресурсов является документация спецификации W3C на w3c.org..
Недавно W3C сделал свои данные доступными через веб-API, страница проекта которого находится на Github. Введение этого API со страницы проекта выглядит следующим образом:
“В ответ на запросы разработчиков нашего сообщества, желающих взаимодействовать с данными W3C, W3C Systems Team разработала веб-API. Через него мы предоставляем данные о спецификациях, группах, организациях и пользователях..”
В сегодняшнем посте мы увидим как получить данные спецификации через W3C API. Вы найдете различные запросы, которые вы можете опубликовать для получения данных Спецификации и других, в https://api.w3.org/doc. Он также поставляется с песочницей для каждого запроса для тестирования API, но вам потребуется Ключ API.
Давайте сначала посмотрим как получить ключ API.
- Войдите в свою учетную запись W3C или создайте.
- Затем перейдите к Управление ключами API на странице вашего профиля.
- Нажмите Новый ключ API и дать ему имя для генерации вашего ключа.
- Затем, если вы хотите, вы можете скопировать и вставить его в ключ API текстовое поле в начале веб-страницы https://api.w3.org/doc для проверки API в песочнице.
В этом посте мы рассмотрим запрос, который использует shortnames отобразить URL спецификации, описание и статус документа. Запрос выглядит так:
https://api.w3.org/Specifications/shortname?apikey=apikey&_format=json
Например, запрос спецификации HTML5 будет таким:
https://api.w3.org/Specifications/html5?apikey=apikey&_format=json
Теперь давайте сосредоточимся на HTML, который мы будем использовать для отображения данных, извлеченных через API. Для этого я решил использовать HTML-шаблон. HTML-шаблоны используются для хранения HTML-кода, который анализируется, но не отображается, пока не будет добавлен на страницу с помощью JavaScript.
W3C SPECS
Шаблон готов. Теперь перейдем к JavaScript, который будет выполнять HTTP-запрос и отображать данные JSON ответа в HTML. Вот набор глобальных переменных, с которых мы начнем:
var shortnames = ['html5', 'selectors4', 'battery-status', 'fullscreen'], xmlhttp = new XMLHttpRequest (), w3cSpecsEle = document.querySelector ('# w3cSpecs'), templateEle = document.querySelector ('Template «);
shortnames
это массив shortnames из спецификаций, которые мы хотим отобразить на нашей веб-странице; если вы хотите найти короткое имя спецификации смотрите на ее W3C URL, и вы сможете увидеть его в конце.
Тем не менее, не гарантируется, что вы сможете получить все Спецификации как это; нет окончательного списка shortnames и спецификации, которые доступны через API еще.
Перебрать shortnames
массив и отправить HTTP-запрос для каждого, и получить ответ.
для (var i = 0; i
responseText
является строкой JSON и должен быть проанализирован, чтобы получить объект JSON.displaySpec
это функция, которая будет использовать данные JSON и отображать их в HTML.Ниже приведен пример текста ответа JSON для спецификации HTML5 и после кода для
displaySpec
.function displaySpec (json) if ('content' в templateEle) / * получить содержимое шаблона * / templateEleContent = templateEle.content; / * добавить заголовок спецификации в заголовок h2 * / w3cSpecHeader = templateEleContent.querySelector ('. w3cSpecHeader'); w3cSpecHeader.textContent = json.title; / * добавить URL-адрес спецификации к ссылке * / w3cSpecLink = templateEleContent.querySelector ('. w3cSpecLink'); w3cSpecLink.textContent = json.shortlink; w3cSpecLink.href = json.shortlink; / * добавить описание спецификации * / w3cSpecDetail = templateEleContent.querySelector ('. w3cDescription'); w3cSpecDetail.innerHTML = json.description; / * добавить статус спецификации и закрасить его в зависимости от его значения * / W3cSpecLatestVerStatus = templateEleContent.querySelector ('mark'); var status = json._links ["latest-version"]. title; W3cSpecLatestVerStatus.textContent = status; switch (статус) случай 'Рекомендация': W3cSpecLatestVerStatus.className = "рекомендация '; перерыв; case 'Working Draft': W3cSpecLatestVerStatus.className = 'draft'; перерыв; case 'Retired': W3cSpecLatestVerStatus.className = 'retired'; перерыв; case 'Рекомендация кандидата': W3cSpecLatestVerStatus.className = 'candidRecommendation'; перерыв; / * добавить копию содержимого шаблона в основной div * / w3cSpecsEle.appendChild (document.importNode (templateEleContent, true)); else / * добавить код JS для индивидуального создания элементов * /
if ('content' в templateEle)
заключается в проверке того, поддерживается ли HTML-шаблон браузером, если нет, создайте все элементы HTML в самом JS. И когда есть поддержка, заполните HTML-элементы, которые находятся внутри содержимого шаблона, соответствующими данными из JSON и, наконец, добавьте копию содержимого шаблона в основной# w3cSpecs
ДИВ.Вот и все. С небольшим количеством стилей CSS, результат выглядит так: