我正在为我的业务开发一个 REST Api(使用 C#)并试图保持它相当干净和简单。我正在努力的设计决策之一是说你有一个资源 uri:
www.mydomain.com/Api/Orders
因此,要创建一个订单,您需要通过以下 json 对此 uri 进行 POST:
{
"ProductNumber": "12345A",
"Quantity": 5
"Cost" : 250.5
"CustomerId" : "912AFD52-8F2F-43A2-87FF-EB65D0A8FD8C"
...etc
}
但是在服务器端,我最初认为确保传入的 json 序列化到底层对象模型是一个多么好的主意,然后我可以直接使用该对象。然而,像 Id、CreatedOn、ModifiedOn 等这样的问题一直存在。
在我的对象模型中,我希望在创建对象时生成 Id,并在将其插入数据库时设置 CreatedOn 等。所以理想情况下,我希望这些属性是只读的,但是如果它们是只读的,那么当 json 序列化为一个对象时,就不会填充 Id。如果不让它们只读,那么可能有人可以在 json 中触发并更改这些属性。
所以我在想我是否最好将json序列化为字典,然后创建从字典中提取属性的对象?
老实说,我对整件事有点困惑。