例如,我有一个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一样自动“下载”该模型?
答案 0 :(得分:2)
通常来说,API的使用者,即使它是您自己的项目,也应该不知道API的实现细节,包括此类。 JSON响应是一种合同,如果需要,客户端应该只创建它自己的表示形式。
但是,考虑到使用者也是您的项目,只要您愿意,就可以 共享它,只需将其放入API和客户端都可以引用的类库中即可。不过,我仍然鼓励您将两者分开。 API是反腐败层的一种形式。整个要点是调解客户端和后端之间的通信,这将说两种不同的域语言。
答案 1 :(得分:1)
一种选择是将模型分离到一个单独的项目中,并从中创建一个NuGet程序包,然后将其部署到内部供稿中,这听起来并不那么可怕。
然后,您可以根据需要在许多项目中重复使用它。