REST服务 - 如何在保持解耦的同时提示客户如何表示数据

时间:2016-12-19 09:05:04

标签: rest user-interface restful-architecture decoupling

为了简单起见,假设我们正在存储用户的个人信息(这里是JSON,但这不是重点):

{
    "name": "John"
    "age": 35
    "sex": "M"
}

我们希望让UI客户端创建表单,以便显示这些信息,以及创建新用户或更新现有用户。

所以,我的问题是:

如何以RESTful方式实现这一目标? REST是否提供了这种类型的交互,即暗示客户如何显示所提供的资源?

我们希望为客户提供最大限度的自由来表示资源,同时帮助他们向我们发回正确的数据,而不需要在后端和前端之间进行太多耦合。

例如,我们可以为user设置模板,如下所示:

{
     "self": "/template/user"
     "method": "GET"
     "data": {
         "fields": [
              {
                  "name": "name"
                  "value": {
                      "data_type": "string"                      
                  }
              },
              {
                  "name": "age"
                  "value": {
                      "data_type": "number"                      
                  }
              },
              {
                  "name": "sex"
                  "value": {
                      "data_type": "string"
                      "options": [
                          "M",
                          "F"
                      ]

                  }
              }
         ]
    }
}

感谢您提供的任何输入。

1 个答案:

答案 0 :(得分:0)

  

如何以RESTful方式实现这一目标? REST是否提供了这种类型的交互,即暗示客户如何显示所提供的资源?

REST的参考应用程序是万维网;我们是怎么做到的?

1)我们使用支持乐队演示指令的媒体类型(HTML),客户可自行决定是否由客户选择渲染引擎来解释

2)我们提供了辅助资源(CSS)的链接,可以选择提取这些资源以向渲染引擎提供额外的演示提示。

请注意,这取决于text / html和text / css是否定义良好(标准化),以便渲染引擎(浏览器)可以独立于服务器进行开发。

我还没有看到任何替代HTML作为与客户端共享呈现指令的标准。我作为第一种方法的建议是将您的数据表示链接到html表示,可以由了解渲染的客户端使用。