HATEOAS: абсолютные или относительные URL?

В разработке УСПОКОИТЕЛЬНОГО веб-сервиса с помощью HATEOAS, каковы за и против показывания ссылки как полный URL ("http://server:port/application/customers/1234") по сравнению только с путем ("/application/customers/1234")?

77
задан Earlz 10 February 2010 в 21:41
поделиться

2 ответа

Введение циклической зависимости между модулями (например, пакеты java).

-121--3542809-

Похоже, что происходит сбой, когда идет проверка на наличие новой версии, так как вы говорите, что это происходит после обновления

  • пробовали ли вы переиздать и удалить существующую версию, например, StartFiles\App _ 1 _ 0 _ 0 _ 1.. 25?
  • Вы сообщили об этом MS на форумах MSDN для C1?
  • Что изменилось в коде (новые ссылки и т.д.?)

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

Также, и я знаю, что это маловероятно, поскольку в нем содержится ссылка на system.security, вы что-то изменили, совпадают ли сроки в сетевой папке для этой версии, и вы добавили какие-либо требования безопасности?

-121--3653447-

Единственная реальная разница заключается в том, что клиентам проще потреблять абсолютные URI вместо того, чтобы создавать их из относительной версии. Конечно, этой разницы было бы достаточно, чтобы заставить меня сделать абсолютную версию.

11
ответ дан 24 November 2019 в 10:59
поделиться

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

Однако, если вы создаете сервер и ожидаете, что другие люди напишут клиентский код, они полюбят вас гораздо больше, если вы предоставите полные URI. Разрешение относительных URI может быть немного сложным. Во-первых, как вы их разрешите, зависит от возвращаемого типа носителя. Html имеет базовый тег, Xml может иметь теги xml: base в каждом вложенном элементе, фиды Atom могут иметь базу в фиде и другую базу в содержимом. Если вы не предоставляете своему клиенту явную информацию о базовом URI, он должен получить базовый URI из URI запроса или, возможно, из заголовка Content-Location! И обратите внимание на косую черту в конце. Базовый URI определяется путем игнорирования всех символов справа от последней косой черты. Это означает, что завершающая косая черта теперь очень важна при разрешении относительных URI.

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

13
ответ дан 24 November 2019 в 10:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: