【发布时间】:2019-07-11 02:02:21
【问题描述】:
我正在开发 API REST,但遇到以下问题:在某些情况下,我的资源 ID 是 URL。
API 用于两者,ID 为 UUID 格式的软件,以及识别资源的唯一方法是使用其路径的文件系统。
所以,为了检索资源,我使用如下 GET 语句: - http://localhost/files/{id}
当我检索存储在软件数据库中的文档时,{id} 类似于“2ab89005-b938-46c8-9d22-3a12a3c40672”,但是当文档在文件系统中时,{id} 可以是类似“/documents/2018/april/myfile.pdf”的东西。
我该如何处理这种情况?到目前为止,我正在通过 URL“http://localhost/files/”(不带 {id})进行 GET 请求,并在正文中以 JSON 格式包含所需的信息:
{
"id": {id}
}
当然,我知道这不是一个好的做法,但我不知道在这种情况下如何实现 REST 架构。 我正在使用 Java + Spring Boot。
谢谢。
已实施的解决方案: 最后,我创建了以下端点:http://localhost/files/?id={id}。 这样做的原因是因为调用我的应用程序不知道它是在请求存储在文件系统中还是在我的数据库中的资源。 如果应用程序知道,我认为最好实现两个端点:http://localhost/files/?id={id}(用于文件系统)和http://localhost/files/{id}(用于数据库)。
【问题讨论】:
标签: java rest api spring-boot