使用WebAPI和返回模型

时间:2019-09-30 13:45:50

标签: asp.net-core asp.net-web-api asp.net-core-webapi

例如,我有一个API端点,它返回以下模型:

public class DeviceDisplayAPI
{
    [JsonProperty(PropertyName = "id")]
    public string Id { get; set; }
    [JsonProperty(PropertyName = "online")]
    public bool Online { get; set; }
    [JsonProperty(PropertyName = "name")]
    public string Name { get; set; }
    [JsonProperty(PropertyName = "batteryLevel")]
    public int BatteryLevel { get; set; }
    //....
}

我想在其他项目中使用此API。我是否要创建此模型的副本,或者可以像使用WSDL一样自动“下载”该模型?

2 个答案:

答案 0 :(得分:2)

通常来说,API的使用者,即使它是您自己的项目,也应该不知道API的实现细节,包括此类。 JSON响应是一种合同,如果需要,客户端应该只创建它自己的表示形式。

但是,考虑到使用者也是您的项目,只要您愿意,就可以 共享它,只需将其放入API和客户端都可以引用的类库中即可。不过,我仍然鼓励您将两者分开。 API是反腐败层的一种形式。整个要点是调解客户端和后端之间的通信,这将说两种不同的域语言。

答案 1 :(得分:1)

一种选择是将模型分离到一个单独的项目中,并从中创建一个NuGet程序包,然后将其部署到内部供稿中,这听起来并不那么可怕。

然后,您可以根据需要在许多项目中重复使用它。