Язык гипертекстовых приложений

Предлагаемый стандарт определения компьютера

Hypertext Application Language ( HAL ) — это соглашение для определения гипермедиа , например ссылок на внешние ресурсы в коде JSON или XML . Он задокументирован в Internet Draft («работа в процессе»), последняя версия 11 опубликована 10 октября 2023 года. Стандарт был первоначально предложен в июне 2012 года специально для использования с JSON [1] и с тех пор стал доступен в двух вариантах: JSON и XML. Двумя связанными типами MIME являются application/hal+xml и application/hal+json. [2]

HAL был создан, чтобы быть простым в использовании и легко применимым в различных областях , избегая необходимости налагать какие-либо требования на то, как проект будет структурирован. Поддерживая этот подход минимального воздействия, HAL позволил разработчикам создавать библиотеки общего назначения , которые могут быть включены в любой API , использующий HAL. [ необходима цитата ]

API, которые принимают HAL, упрощают использование библиотек с открытым исходным кодом и позволяют взаимодействовать с API с помощью JSON или XML. Альтернативой была бы необходимость разработки собственного формата , что в свою очередь заставило бы разработчиков научиться использовать еще один иностранный формат. [3]

Соглашение

HAL структурирован таким образом, чтобы представлять элементы, основанные на двух концепциях: Ресурсы и Ссылки. Ресурсы состоят из ссылок URI , встроенных ресурсов, ваших стандартных данных (будь то JSON или XML) и ссылок, не являющихся URI. Ссылки имеют целевой URI, а также имя ссылки (называемое «rel»), а также необязательные свойства, разработанные для учета устаревания и согласования контента. [3]

Пример

Общий ресурс

{ "_links" : { "self" : { "href" : "http://example.com/api/book/hal-cookbook" } }, "id" : "hal-cookbook" , "name" : "Кулинарная книга HAL" }            

Встроенный ресурс

{ "_links" : { "self" : { "href" : "http://example.com/api/book/hal-cookbook" } }, "_embedded" : { "author" : { "_links" : { "self" : { "href" : "http://example.com/api/author/shahadat" } }, "id" : "shahadat" , "name" : "Шахадат Хоссейн Хан" , "homepage" : "http://author-example.com" } }, "id" : "hal-cookbook" , "name" : "Кулинарная книга HAL" }                                

Коллекции

{ "_links" : { "self" : { "href" : "http://example.com/api/book/hal-cookbook" }, "next" : { "href" : "http://example.com/api/book/hal-case-study" }, "prev" : { "href" : "http://example.com/api/book/json-and-beyond" }, "first" : { "href" : "http://example.com/api/book/catalog" }, "last" : { "href" : "http://example.com/api/book/upcoming-books" } }, "_embedded" : { "author" : { "_links" : { "self" : { "href" : "http://example.com/api/author/shahadat" } }, "id" : "shahadat" , "name" : "Шахадат Хоссейн Хан" , "домашняя страница" : "http://author-example.com" } }, "id" : "hal-cookbook" , "name" : "HAL Cookbook" }                                                    

Смотрите также

Ссылки

  1. ^ Келли, Майк (7 июня 2012 г.). «JSON Hypertext Application Language». IETF . Получено 16 октября 2018 г. .
  2. ^ Ричардсон, Леонард; Руби, Майк Амундсен; предисловие Сэма (2013). "7". RESTful Web APIs (Первое издание). Севастополь, Калифорния: O'Reilly. ISBN 978-1-4493-5806-8.{{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  3. ^ ab Келли, Майк (2011-06-13). "HAL - Hypertext Application Language A lean hypermedia type" . Получено 23 июля 2014 г. .
  • Последний проект языка гипертекстовых приложений JSON
Получено с "https://en.wikipedia.org/w/index.php?title=Язык_гипертекстового_приложения&oldid=1259387609"