REST Web应用程序:XML / JSON的作用是什么?

时间:2016-08-04 13:56:26

标签: java json xml rest service

我目前正在了解REST应用程序,特别是REST的Java实现。

我不确定JSONXML在REST中扮演什么角色?

示例,以显示我目前的理解:

  1. 用户点击前端的按钮。
  2. 将用户重定向到URL,例如/ user / {userid}
  3. 服务类中的Java方法调用存储库(例如Crud Repository)类来检索数据
  4. 存储库从数据库中提取数据(例如关于该特定用户)
  5. 数据传回服务类,然后在UI上显示给用户。
  6. JSONXML适合这个过程?

5 个答案:

答案 0 :(得分:1)

数据从服务返回到前端的格式。

答案 1 :(得分:1)

前端和api之间的数据传输是在 JSON 和/或 XML 中完成的。

所以,简单地......     用户通过某个网页请求一些数据,并且网页向RESTful API询问特定数据,api将网页发送为 JSON ,然后网页操作该网页显示它或做任何需要处理的数据。

这是描述其角色的一般方法

答案 2 :(得分:1)

控制器内部的方法如下所示,它给出了json响应

<html>
<body>
<input id="inp" type='file'>
<p id="b64"></p>
<img id="img">

<script type="text/javascript">
function EL(id) { return document.getElementById(id); } // Get el by ID helper function

function readFile() {
  if (this.files && this.files[0]) {
    var FR= new FileReader();
    FR.onload = function(e) {
      EL("img").src       = e.target.result;
      EL("b64").innerHTML = e.target.result;
    };       
    FR.readAsDataURL( this.files[0] );
  }
}

EL("inp").addEventListener("change", readFile, false);
</script>

</body>
</html>

这是如何在视图中处理的(Say @RequestMapping(value = "/getSomething", method = RequestMethod.POST) public @ResponseBody String getSomething(HttpServletRequest req) { JSONArray jsonArr = new JSONArray(); Collection someList = new ArrayList(); someList = someService.getsomeList(req); // here you get the response from service class to controller Iterator iter = categoryList.iterator(); while (iter.hasNext()) // iterate the colleection { JSONObject jsonObj = new JSONObject(); SomeClass someObj = (SomeClass) iter.next(); jsonObj.put("name", someObj.getName()); jsonArr.put(jsonObj); } return jsonArr.toString(); // return jsonstring as response } )。这里ajax调用对控制器和响应设置为页面中的字段。

JSP

希望这有帮助!

答案 3 :(得分:1)

如果我们分开你的第五步...... 1)以特定格式从服务返回数据 2)UI以该格式接收它并将其显示在屏幕上。 此格式为XML或JSON甚至纯文本。这是您在从UI进行调用时提到的Accept类型,并在服务中设置响应标头。

JSON代表Javascript Object表示法,因此如果响应是JSON格式,您可以直接将其用作javascript变量,只需使用JSON.parse进行解析即可。 Accept类型实际上取决于您的要求。对于大多数情况,JSON是首选,因为它很容易转换为JS对象。

答案 4 :(得分:0)

正如其他人所说,在您的示例中,JSON / XML适合链的末尾(几乎),当数据从服务器返回到客户端时。

将JSON和XML(以及其他格式)视为一种类型的框。有些盒子是用塑料制成的,有些是用纸板制成的,因为它们用于不同的目的。

JSON / XML是您向服务器发送/请求的数据的“盒子”类型。

在你的例子中:

  • 用户点击前端的按钮。
  • 将用户重定向到URL,例如/ user / {userid}
  • 服务类中的Java方法调用存储库(例如Crud Repository)类来检索数据
  • 存储库从数据库中提取数据(例如关于该特定用户)
  • 来自数据库的数据从服务器的数据格式(“盒子类型”)“翻译”成更常见的格式(如JSON或XML)
  • JSON / XML格式的数据被发送到前端用于显示目的

以这种方式思考:如果没有人/系统引用的通用格式,那么如果查询Oracle数据库,则需要能够理解该格式。如果您必须查询Sybase数据库,那么您也需要能够理解它。

要解决这个问题,您可以选择一种“普通”格式(一种更容易装入更多卡车的盒子,而不是只能通过特定类型的卡车运输的盒子),从而更容易“传输”那些数据。

因此,实质上,JSON / XML只是表示数据的一种方式,因此它可以用来表示最初采用其他“难以阅读”格式的数据,并使其更易于阅读或使用。 / p>

例如,通过将数据库对象作为JSON返回,您可以在网页中显示它们,因为大多数网页框架都理解JSON,而不是很少有人理解Oracle / Sybase格式(有驱动程序可以执行此操作,但它是超出了这个玩具示例的范围)。

您还可以使用它与其他也了解JSON的服务器(例如第三方API)进行通信,因此如果服务器A和B具有不同的数据表示(内部一个是Oracle支持,另一个是Sybase支持)他们仍然可以使用像JSON这样的“常见”格式相互交谈。