我正在爲許多不同的客戶建立webservices以連接到汽車零部件數據庫。這部分有各種各樣的屬性。不同的客戶需要不同的屬性子集來「做他們的事情」。「Flexible Webservice」的策略
所有客戶至少需要一個ID,一個零件號和一個名稱。有些可能需要價格,有些可能需要URL的圖像等等。下一個客戶端可能會在幾年後寫入,並需要不同的屬性子集。我寧願不發送超過他們需要的東西。
我一直在爲每個需求建立單獨的'PartDTO's'屬性子集,並將它們作爲單獨的webservice方法提供,以返回相同的部件列表,但每個部件具有不同的屬性。與其爲每個客戶端構建這個數據庫併爲DTO和方法提供邏輯名稱,我想爲客戶端指定他們想要的方式。我回JSON,所以我在想客戶遞給我一個JSON對象,列出他們在結果集所需的屬性:
RET = {的ImageUrl:真,RetailPrice:真實,...}
首先,這是否有意義?
其次,我不想在這裏丟失的是返回IEnumerable的好語法,並讓JSON工具序列化它。我當然可以建立一個'JSON'字符串並返回它,但這看起來很奇怪。
對此提出建議? C#'動態'?
我已經看到API(Jira就是其中之一),可讓您在輸入中指定所需的字段。我認爲Jira使用查詢參數(展開他們稱之爲)。使它成爲逗號分隔的字段名稱列表。/v1/api/entity?fields = ImageUrl,RetailPrice這樣,任何給定的客戶端都可以請求其所有字段的特定子集。 – aet