我是REST的新手,刚开始阅读一些教程。
令我真正困惑的一件事是: txt / xml / json格式的内容 是 什么:资源或资源表示形式?
一定是后者吧?由于资源可以是视频,音频或其他MIME类型。
请看下面的例子。假设我得到了一个类似“ RESTful服务的描述,其中User是使用以下XML格式表示的资源”:
<user>
<id>1</id>
<name>Mahesh</name>
<profession>Teacher</profession>
</user>
或JSON格式:
{
"id":1,
"name":"Mahesh",
"profession":"Teacher"
}
然后,当我使用HTTP GET访问资源时, 实际上要获得什么数据? 我是否得到“
1,Mahesh,Teacher”,因为这是不包括格式的真实数据,还是得到了既包含数据又包含数据表示形式的整个xml或json“对象”?
如果用户具有图像属性该怎么办?HTTP将以什么样的“包”和形式将其传递给我:图像本身还是图像的链接?
编辑
这里的另一个例子:
http://maps.googleapis.com/maps/api/geocode/xml?address=1600+露天剧场+百汇,+山景+景观,+
CA&sensor =
false
在这里,我应该了解返回的资源本身是XML文件,还是资源不是XML文件,但是嵌入XML资源表示形式的某些数据是?
如果我要的资源包含图像,视频等,该怎么办?这些不是可以以XML或JSON格式嵌入的文本数据-在这种情况下,我会得到什么?
REST资源的概念 是抽象的 ,您可以将其理解 为由服务器提供的URL标识的某种东西 。
资源可以是用户,用户列表,客户,文件或应用程序的任何实体。
例如,将用户视为具有以下属性和值的资源:
该URL( 统一资源定位器 )只是标识资源,也就是,其中的资源位于服务器。
例如,虽然该URL /app/users/1
定位用户的ID 1
,该URL /app/users
定位在该应用程序的所有用户。
REST协议无关,但是,如果你正在使用HTTP,您可以进行访问的URL与HTTP方法,如对资源的行动GET
,POST
,PUT
和DELETE
。
例如,GET
对URL
执行时/app/users/1
,您将获得ID为的用户表示形式1
。
资源可以多种格式表示,例如JSON,XML,YAML等。
在JSON中,表示形式为:
{
"id": 1,
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com"
}
在XML中,表示形式如下:
<user>
<id>1</id>
<firstName>John</firstName>
<lastName>Doe</lastName>
<email>john.doe@example.com</email>
</user>
例子1
考虑您正在使用JavaScript开发应用程序,并且服务器可以将资源表示为JSON和XML。在JavaScript应用程序中,处理JSON比处理XML更容易。因此,您希望将资源表示为JSON。
为此,在GET
对URL
执行时/app/users/1
,您将在HTTP标头中添加Accept
一个application/json
值,以告知服务器客户端接受的表示形式。
因此,服务器将返回表示为JSON的资源。响应将包含Content- Type
带有application/json
值的标头,指示响应的内容是JSON。
例子2
例如,除了JSON和XML外,资源还可以表示为图像或视频。
考虑一个可找到用户个人资料图片的URL /app/users/1/profile-picture
。
根据图像的类型,Content- Type
该响应将是image/jpeg
,image/png
,image/gif
,等。
问题内容: 术语“ jta-datasource”和“ resource-local datasource”对我来说有点模糊。我放下我的理解(或假设),我想让你说一下我是对还是错。 可以将同一数据库称为jta数据源或资源本地数据源 如果提到为jta-datasource,那么Bean /其他类可以使用JTA。因此,UserTransaction接口 如果数据源是本地资源,则无法使用CMT / BM
假设我有两种资源:手推车和物品。项目可以嵌套在购物车内,也可以不嵌套在购物车内: 在REST约定中,购物车中的同一项目和购物车中的同一项目是不同的资源吗?
问题内容: 我正在尝试在Jersey中编写一个通用函数,该函数可用于通过REST获取相同类型的对象列表。我基于此论坛中的信息进行链接: 但是,这不起作用。如果我尝试执行它,则会出现以下错误:。 但是,如果我编写此函数时没有进行模板化(用实际的类名替换T),则可以正常工作。当然,这种方式会使函数失去其意义。 有没有办法解决这个问题? 问题答案: 我找到了解决方案 https://java.net/p
问题内容: 我现在正在看一段Java代码,它采用一个路径作为String并使用来获取其URL ,然后调用并最终执行。 哦,还有和的电话。 我现在很困惑-我猜主要是因为术语。有人可以请我介绍这些差异,还是提供一些指向虚拟模型的材料的链接?尤其是URL的URI和 文件的资源 ?对我来说,感觉它们应该分别是同一件事。 和之间的区别在 这里解释:url.getFile()和getpath()有什么区别?(
我正在为面向对象编程的秋季考试做准备,其中一种任务是提供代码输出,这通常包括一些异常处理问题。 现在我的问题是什么时候用资源尝试关闭它的资源,因为我的输出严格依赖于实现AutoCloseable的类的输出。 在提供的代码中,我不明白为什么“close 1”输出在“close 40”之前,或者为什么对象A(40)在这个块的末尾被关闭。是因为A(50)和A(40)是同一类型的吗? 我的主要问题是,Au
我有一个简单的,它使用公开。下面是实体类: 我创建了一个类,它的外观如下: 下面是repository类: 我还在配置中指定了用户投影,以确保它将被使用。 因此,当我进入/users路径时,我得到以下响应(应用了投影):