使用广泛的参数列表命名 REST 服务 GET



假设您正在获取一些与学生关联的元数据,并且您正在设计一个 REST Web 服务来执行此操作。 显然,您可以为每个学生做一个 GET,但您更愿意一次获得所有学生。 假设 ID 和学生人数"太长"。 也就是说,我们可能会查询 200 名学生,每个学生的 ID 长度为 32 个字符,远远超出了安全的 URL 长度。

您将如何克服这个问题?

一种方法是使用 PUT 或 POST 并传入带有学生 ID 的数据结构。 你会选择哪个?

如果选择这种方法,您会给这样的服务起什么名字?

还有其他选择吗?

一个接一个的 GET-ting 当然不是一个很好的解决方案。

我会使用 POST,学生 ID 在 JSON 数组中。类似的东西

[{"id":"32charstudentId1"},
 {"id":"32charstudentId2"},
 {"id":"32charstudentId3"}]

这在后端迭代相当容易,并且可以很好地完成工作。反应可能是这样的

[
   {
   "id":"32charstudentId1",
   "meta1":"some info",
    "meta2": "some more info"
   },
   {
   "id":"32charstudentId2",
   "meta1":"some info",
    "meta2": "some more info"
   },
   {
   "id":"32charstudentId3",
   "meta1":"some info",
    "meta2": "some more info"
   }]

服务的名称实际上取决于它为您提供的实用程序。要通用,您可以简单地将其称为类似 "获取学生详细信息"


我想,带有学生ID的简单数组也可以正常工作。

一种(有点粗糙的)替代方案可能是发送带有字符串中学生 ID 的 POST,由您选择的分隔符分隔,我更喜欢分号 (;)。

相关内容

  • 没有找到相关文章

最新更新