Мы запускаем новый сервис среднего уровня, который позволит внутренним клиентским системам создавать, обновлять и запрашивать записи в некоторых базовых хранилищах данных. Служба будет объединять до 3 отдельных баз данных. Для целей этого вопроса предположим:
Хранилище данных № 1: Собственная база данных XML.
Хранилище данных № 2: готовая реляционная база данных.
Хранилище данных № 3: Хранилище плоских файлов (файлы хранятся в двоичном виде).
Клиенты не будут знать (и не будут заботиться) о том, какое хранилище данных они запрашивают / обновляют. Новая служба примет это решение. У меня такой вопрос: должен ли мой API предоставлять XML или объекты? Например. Новый API будет иметь метод add. Если предположить, что наша система является системой хранения автомобилей, то метод add API может выглядеть следующим образом:
AddNewCar( CarObject car )
или, это может выглядеть так:
AddNewCar( string carXml )
Теперь, даже несмотря на то, что 2-й метод слабо типизирован при входе, XML-файл сразу же будет проверен по схеме как минимум.
Новый сервис будет написан на C # (еще не определено, какая версия, но, вероятно, 3 / 3.5 с WCF). Клиентами API могут быть C # / VBA / VB.Net / C ++ / Java).
Если хотите узнать больше, дайте мне знать. Спасибо
Обновление: обратите внимание, что API также будет публиковать XML по шине сообщений. Например. Когда будет добавлен новый автомобиль, будет опубликован XML-код автомобиля, так что каждый, кто интересуется новыми автомобилями, получит уведомление.