我是初次休息服务的新手,我有点困惑。如果我有一个需要JSON响应的Ajax请求,那么我将@ResponseBody注释添加到我的方法中,它给了我对象的JSON。
但是,如果我必须提供宁静的服务,那么即使我必须这样做。我为ajax创造了一个宁静吗?
答案 0 :(得分:0)
@ResponseBody - 指示方法返回值的注释应绑定到Web响应主体。 (java doc查看更多信息here)
所以它的所有统计信息都是方法返回类型应直接写入HTTP响应体(而不是放在模型中,或解释为视图名称)
结果在体内的呈现将受到少数参数的影响 我建议阅读以下有关内容协商的section:
Spring将使用自己的启发式方法来确定所请求的响应呈现:
文档总结了以下段落:
可用选项是检查请求中的文件扩展名 URI,"接受"标头,请求参数,以及后退 在默认内容类型上。默认情况下,请求中的文件扩展名 首先检查URI,然后接受"接受"接下来检查标题。
您可以使用@RequestMapping指定接受标头。
<mvc:annotation-driven>
元素具有content-negotiation-manager属性。
默认情况下,它将与版本4中的Jackson 2一起使用,因此您只需将以下内容添加到类路径
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.0</version>
</dependency>
在客户端,您可以使用Ajax或使用直接URL调用来使用结果。 只要请求正确的内容类型,客户端技术就没有区别。 如果您收到错误406 - 您的内容类型定义与您的请求相冲突
您可以查看以下示例here
答案 1 :(得分:0)
看你需要了解什么是宁静的webservices。 restful webservices是一种方法论,其中所有可用的http方法都映射到CURD(创建更新读取删除)
Operation SQL HTTP
Create INSERT POST
Read SELECT GET
Update UPDATE PUT
Delete DELETE DELETE
所以它被称为restful webservice。如果你没有遵循这个策略,那么它不是。