Использование WebAPI и возвращение модели - PullRequest
1 голос
/ 30 сентября 2019

например, у меня есть конечная точка 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 ]

2 голосов
/ 30 сентября 2019

Вообще говоря, потребитель API, даже если это ваш собственный проект, должен не знать о деталях реализации API, включая такие классы, как этот. Ответ JSON - это контракт, и клиент должен просто создать собственное представление этого, если оно ему нужно.

Однако, учитывая, что потребитель также является вашим проектом, если хотите, вы можете поделитесь им, просто поместив его в библиотеку классов, на которую могут ссылаться как API, так и клиент. Тем не менее, я бы посоветовал вам разделить их. API - это форма антикоррупционного уровня. Весь смысл в том, чтобы обеспечить связь между клиентом и бэкэндом, который будет говорить на двух разных языках домена.

1 голос
/ 30 сентября 2019

Один из вариантов - разделить модели на отдельный проект и создать из него пакет NuGet, а затем развернуть его на внутреннем фиде, что не так страшно, как кажется.

Затем вы можете использовать повторноэто столько проектов, сколько вам нужно.

...