在ASP.NET Web Api中提供资源的最佳方法是什么?他们是否有任何参考或指导?
让我们说例如我们有一个人。
选项1:
{
"Personalia": {
"CitizenServiceNumber": "23443342",
"FirstName": "John",
"LastName": "Web",
"Gender": "Male",
"DateOfBirth": "1965-02-16",
},
"Spouse": {
"FirstName": "Emily",
"LastName": "Web",
"Gender": "Female",
"DateOfBirth": "1968-02-16"
},
"Address": {
"HouseNumber": "565",
"Street": "Somewherestreet"
}
}
选项2:
{
"CitizenServiceNumber": "23443342",
"FirstName": "John",
"LastName": "Web",
"Gender": "Male",
"DateOfBirth": "1965-02-16",
"SpouseFirstName": "Emily",
"SpouseLastName": "Web",
"SpouseGender": "Female",
"SpouseDateOfBirth": "1968-02-16",
"HouseNumber": "565",
"Street": "Somewherestreet"
}
这是一个相当简单的例子,但问题仍然是一个更复杂的类。
答案 0 :(得分:3)
我会选择第一个选项。你不应该担心有很多对象。这些被称为视图模型,完全用于此目的。除此之外,你可以在API的其他部分重用这些对象的某些部分,在那里你可能需要地址,人员等......
如果您仔细查看此JSON字符串,实际上不需要Person
,Personalia
和Spouse
个对象来映射此结构。单个Person对象就足够了。
例如,您的API控制器操作所采用的视图模型可能如下所示:
public class MyViewModel
{
public PersonViewModel Personalia { get; set; }
public PersonViewModel Spouse { get; set; }
public AddressViewModel Address { get; set; }
}