gpt4 book ai didi

asp.net-mvc - Web Api 端点复杂对象 vs 简单平面对象最佳实践

转载 作者:行者123 更新时间:2023-12-04 05:11:16 28 4
gpt4 key购买 nike

在 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"
}
}
  • 易读
  • 我们需要多个类/模型(Person、Personalia、Spouse、Address)来获取/发布/放置一个人

  • 选项 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"
    }
  • 我们只需要 1 个类(class)
  • 它的可读性/结构性较差,尤其是对于数据较多的类

  • 这当然是一个相当简单的例子,但是对于更复杂的类,问题仍然相同。

    最佳答案

    我会选择第一个选项。你不应该担心有很多对象。这些被称为 View 模型,正是用于此目的。除此之外,您可以在 API 的其他部分重用这些对象的某些部分,在这些部分您可能需要诸如地址、人员、...

    如果您更仔细地查看这个 JSON 字符串,您实际上并不需要 Person , PersonaliaSpouse对象来映射这个结构。一个 Person 对象就足够了。

    例如,您的 API Controller 操作采用的 View 模型可能如下所示:

    public class MyViewModel
    {
    public PersonViewModel Personalia { get; set; }
    public PersonViewModel Spouse { get; set; }
    public AddressViewModel Address { get; set; }
    }

    关于asp.net-mvc - Web Api 端点复杂对象 vs 简单平面对象最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912076/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com