初学者对REST服务中POST方法的困惑

时间:2016-08-02 02:10:55

标签: java web-services rest jersey

我参加了关于 Jersey REST网络服务的公开讲座并做了一些笔记。以下是讲师在讲座中所说的内容,我对此非常困惑。

  

我需要将一些内容发送到/ files /。例如,你   有一个本地文件名为data.json.Posting该文件的内容   您的REST服务将使用名称将内容存储在服务器上   它会自动选择3.json,在你选择的文件夹中。

     

ii。这里的关键是REST服务需要管理   通过选择一个尚未使用并返回的名称创建的文件   该名称发送者,因此发件人可以重新下载它发送的内容   使用它获得的名称。(发件人不知道内容的名称   将在收到REST服务的响应之前给出。

对于步骤i,这是否意味着将文件上传到服务并保存到新位置?服务的含义是什么意思自动命名?

对于步骤ii,这意味着如果我将三个文件发送到服务中,当我调用GET / files / 1时,GET / files / 2和GET / files / 3将返回1.json,2的内容。分别是json,3.json?除了讲师说我们可以使用curl命令行将文件发布到服务中。

讲师没有提供任何例子,这使我对此并不清楚。

是否有可能帮我编写一个关于该演示的演示或向我提供一些示例?

1 个答案:

答案 0 :(得分:1)

  

您有一个本地名为data.json

的文件

好吧,够简单

  

将该文件的内容发布到REST服务将把内容存储在服务器上

当然,保存文件。它读取POST数据,并将其存储到磁盘。

  

自动选择的名称

这是一个小细节......它可以存储为相同的名称,但是你会有相互冲突的文件名。

  

在您选择的文件夹中

这一点并不是很清楚......但是,继续前进。

  

REST服务需要通过选择一个尚未使用的名称来管理它创建的文件

正是早先的观点。

  

并将[...]返回给发件人

想想一个典型的网站......你请求http://stackoverflow.com返回返回HTML。您的REST服务只是返回一个字符串/文件。

  

名称返回给发件人,以便发件人可以使用名称重新下载发送的内容。(发件人不知道哪个在收到REST服务的响应之前,将给出内容的名称

客户需要知道添加的文件名。否则,您不知道如何申请该文件;服务器为您最初发送给它的文件生成了自己的名称。

  

如果我将三个文件发送到服务中,当我调用GET / files / 1时,GET / files / 2和GET / files / 3将分别返回1.json,2.json,3.json的内容?

不完全 - 服务器生成了文件的名称。所以,一个更好的例子是

POST -d file.json /files

输出文字

20160801-21-38.json

为了回复请求该文件,您现在需要使用该值

GET /files/20160801-21-38.json