Я разрабатываю API REST, но столкнулся со следующей проблемой: в некоторых случаях идентификатором моих ресурсов являются URL-адреса.
API используется для обоих программ, в которых идентификаторы имеют формат UUIDи FileSystem, где единственным способом идентификации ресурсов является использование их пути.
Итак, для извлечения ресурса я использую инструкцию GET, например: - http://localhost/files/{id}
Когда яизвлекаю документ, хранящийся в базе данных программного обеспечения, {id} что-то вроде "2ab89005-b938-46c8-9d22-3a12a3c40672", но когда документ находится в файловой системе, {id} может быть что-то вроде "/ documents/2018/april/myfile.pdf".
Как мне справиться с этой ситуацией?До сих пор я выполняю запрос GET по URL-адресу "http://localhost/files/" (без {id})" и включаю в тело необходимую информацию в формате JSON:
{
"id": {id}
}
Конечно, язнаю, что это не очень хорошая практика, но я не знаю, как я могу реализовать архитектуру REST в этой ситуации. Я использую Java + Spring Boot.
Спасибо.
РЕШЕНИЕ РЕАЛИЗОВАНО: В конце я создал следующую конечную точку: http://localhost/files/?id={id}. Резонанс этого заключается в том, что приложение, которое вызывает меня, не знает, запрашивает ли он ресурсхранится в файловой системе или в моей базе данных. Если приложение знает это, я думаю, что лучше реализовать две конечные точки: http://localhost/files/?id={id} (для файловой системы) и http://localhost/files/{id} (для базы данных).