设计RESTful服务的输出对象

时间:2015-01-05 12:49:59

标签: class rest

我正在使用REStful服务创建一个新项目。我需要发送一个包含

的对象
  1. 包含UI数据的对象集合
  2. 对象用户(名称,角色等)
  3. 发生错误的收集(如果有)。
  4. 所以我设计了这样的课程

    public class ServiceREsponse
    {
     Collection<ServiceError> errorCollection { get; private set; }
    
        Collection<object> objectCollection { get; set; }
       User user { get; set; }
    }
    

    如何在此课程中填充值,或者如何在我的服务中使用此类?

1 个答案:

答案 0 :(得分:0)

我不确切地知道您用作RESTful服务的客户端的技术/框架。实际上,您需要实例化您的类并填充您要发送的数据。然后,您需要将此对象转换为可以放入HTTP请求的有效负载的结构。

以下是一个示例:

PUT /myresource
(some headers like Content-Type: application/json)
{
  "objectCollection": [
    (...)
  ],
  "user": {
    (...)
  }
}

该服务可能不支持所有结构,但通常支持JSON,XML或YAML等格式。使用JSON,我们会有类似的东西:

{
  "objectCollection": [
    { "field1": (...) },
    { "field1": (...) },
    { "field1": (...) },
    (...)
  ],
  "user": {
    "name": "my name",
    (...)
  }
}

您可以注意到必须将集合转换为结构中的数组。

此外,生成的结构必须与服务预期的结构相匹配。

使用Java,你有一些很棒的REST客户端,比如Restlet(http://restlet.com/products/restlet-framework/)和来自JSON / XML / YAML的对象,如Jackson(http://wiki.fasterxml.com/JacksonHome)。

希望它有所帮助, 亨利