Была выпущена новая спецификация JSON API с целью ускорения разработки API.
JSON API устанавливает правила формулировки запросов на ресурсы, как с точки зрения способа, которым клиент должен запрашивать ресурсы для выборки или изменения, так и с точки зрения того, как сервер должен отвечать на запрос.
Идея состоит в том, что это уменьшит количество запросов и ответов, которые необходимо передать между клиентом и сервером, без ущерба для читабельности, гибкости или обнаруживаемости. Такие функции, как составные документы, разреженные наборы полей и сортировка по нескольким полям, означают, что клиенты могут запрашивать именно те данные, которые им нужны, с сервера.
API определяет как тип носителя (application / vnd.api + json), так и правила использования HTTP для выборки и изменения ресурсов, представленных этим типом носителя. Разработчики API сосредоточились на гипермедиа, и вы можете использовать JSON API для создания API гипермедиа.
В статье о новом API в блоге Cerebris Дэн Гебхардт (один из соавторов API) сказал, что ссылки могут быть добавлены в документы JSON API, чтобы указать канонические URL-адреса для ресурсов и связанных с ними отношений, и что клиенты могут «сканировать» ссылки в API точно так же, как ваш браузер сканирует ссылки в HTML.
Он комментирует:
«Устраняя необходимость жесткого кодирования URL-адресов (или логики их получения), клиенты и серверы становятся более слабосвязанными и могут легче развиваться».
Гебхардт создал JSON API вместе со Стивом Клабником, Иегудой Кац и Тайлером Келленом.
Базовая спецификация API JSON предоставляет соглашения практически для всех деталей проектирования API, включая такие аспекты, как представление отдельных ресурсов по сравнению с коллекциями ресурсов; определение ресурсов; представление отношений между ресурсами; получение, создание, обновление и удаление ресурсов и отношений; и создание гипермедийных ссылок на ресурсы, отношения и коллекции с разбивкой на страницы.
Помимо очевидных преимуществ экономии времени, создатели JSON API отмечают, что активно развивается экосистема совместимых с JSON API библиотек, охватывающих множество языков и фреймворков.
Конечно, одна из опасностей заключается в том, что JSON раньше был таким простым и прямым способом обмена данными, и это было одной из основных причин его победы над такими альтернативами, как XML и SOAP. Будем надеяться, что в будущем это не станет слишком сложным.
Намерение состоит в том, чтобы расширить спецификацию, чтобы добавить дополнительные возможности. Если вы хотите принять участие, проект находится на GitHub.