在一个普通的休息服务中,至少有3个模型,它们指的是相同的东西,但在不同的情况下略有不同。
第一个模型用于接受来自帖子请求的数据,其中字段template_id
的值为" id12345"。
第二个模型是数据库实体,我们还有一个数据库实体,它也有一个template_id
字段,但字段的类型是int,它是一个内部模板主键在db中,它是一个整数。
所以我无法直接将后期数据转换为数据库实体以插入数据库。
所以我想知道处理这三种模型之间微小差异的好方法。
我是否需要创建3个名为postDataModel
DBModel
responseModel
的模型?我认为这不是一个好主意。
答案 0 :(得分:1)
帖子数据和休息响应可能相同,它们都属于表示层。
这里有一个例子。 restlet-tutorial
答案 1 :(得分:1)
首先,您可以阅读有关创建Web API的方法的帖子(即RESTful服务,即Restlet服务器应用程序):
也就是说,使用Restlet处理请求时涉及几个元素:
Application#createInboundRoot
和课程Router
。@Get
,@Post
,@Put
,@Delete
,... 虽然您可以访问原始数据,但Restlet提供了一种转换功能,允许您将这些有效负载作为对象。
您可以注意到,有效负载中的数据类型不仅仅是字符串。实际上,它取决于用于有效载荷的结构。您可以直接使用字符串值,也可以使用url编码的表单,还可以使用JSON,XML,YAML结构。我猜你使用表单所以只支持字符串值。如果这是一个问题,请随意使用JSON或其他内容。
也就是说,一个好的方法是从数据库实体做出不同的表示,因为表示通常有点不同。表示可以是子集或聚合或几个。但是,通过阻止属性的类型转换,您可以使您的生活更轻松。我的意思是,在表示和实体中使用相同类型的属性。
关于主键,有几种方法可以处理它们:
希望它可以帮到你, 亨利