我有一个类,其他类作为其数据成员。类模型可以在另一个帖子here中找到。它有许多数据成员,所以我带了一些成员来创建其他类。我的应用程序包含带有Hibernate的Spring Server API,而客户端则是Angular 2x。
在客户端,我将有一个类似于包含用户将填充并发送到服务器后端的所有数据成员的表单。
A)我打算用JSON发送键值对的数据。有没有更好的方法呢?
B)我应该在将数据发送到服务器之前在客户端创建相同的类结构吗?
B)我现在正在努力的是如何在客户端发送它们时重建服务器端的数据)并在我将它们保存到数据库之前使用它们来初始化我的类(例如优惠券类)。
例如,如果用户想要创建优惠券,在将优惠券类存储到数据库之前,如何使用来自客户端的数据来初始化优惠券类,因为优惠券有其他类作为其数据成员。
例如,创建优惠券的方法的签名在服务器端看起来像这样
public ResponseEntity createCoupon(@RequestBody Coupon coupon){}
如果我将数据作为JSON的键值对发送,我不认为该函数中的Coupon参数将被初始化。它还包含其他类作为数据成员。
这是我第一次处理这种情况所以我需要一些指导方针,好指点。
A)我打算用JSON发送键值对的数据。有没有更好的方法呢?
是。更好的方法是将数据作为类似于Coupon/Product/Promo
图的JSON结构发送。并使用Jackson序列化/反序列化它。
B)我应该在将数据发送到服务器之前在客户端创建相同的类结构吗?
是。您甚至可以在JavaScript中使用类似的classes
。
B)我现在正在努力的是如何在客户端发送它们时重建服务器端的数据)并在我将它们保存到数据库之前使用它们来初始化我的类(例如优惠券类)。
这样做最好(至少是好方法)。这取决于您的背景:业务要求,您的技能,甚至您的团队。有一些建议:
使用单独的模型图(使用DTO
)序列化/反序列化JSON
。这有点难。但是,将来你可能会有一个非常难以实施的突发要求。
你需要尝试并选择正确的方法。所以你可以从最简单的情况开始
class CouponModel {
String onlineCode;
List<String> productIds;
}
当您从客户端获得CouponModel
时,您将需要:创建Coupon
并通过ID获取/加载产品(这是验证产品ID的好地方)。
另一种选择:
class CouponModel {
String onlineCode;
List<ProductModel> products;
}
qazxsw poi只有qazxsw poi - > qazxsw poi的id,并且有完整的产品数据来自ProductModel
- > client side
。
A)JSON对象是使用API的标准对象,通常server side
实际上是一个对象,但它不仅限于JSON对象。
B / C)这完全取决于您和您客户的偏好。就类定义而言,正面和背面都将分别处理,但最佳做法是为重用对象创建类结构,以确保数据处理完全符合预期。这是一个坚实的故障安全和良好的做法,但它不是一个要求。
注意:可以在此处找到使用完整打字稿正面和背面(角度/节点)的API的前/后类构造的可靠示例:server side