2011-06-28 34 views
0

標題有點混亂,抱歉。轉換POST值以符合不同的約定

我在我的網站上收集了大量數據,我最終會通過cURL發送到另一個網站的API。我可以使所有事情都在技術層面上工作,但是我遇到的最大麻煩是語義。

我不是一個球迷的其他網站使用其POST值的命名約定的[所有] [和,據推測,其DB結構。]

我的網站

book-title => Book of Thieves 
bind-type => wire //enum value 
shipping-address-1 => 123 Chesterfield Road 
shipping-address-2 => Apt. 204 

遠程站點

Title => Book of Thieves 
BindType => wire-bind //enum value 
Shipping1 => 123 Chesterfield Road 
Shipping2 => Apt. 204 

我的問題是:什麼是最好的方式在內部利用我自己的首選數據結構,但是當它到達遠程站點的API時,將數據轉換爲他們實施的約定?這不僅包括鍵,還包括值(有些值是預定義的,而不是用戶輸入的)。

謝謝!

回答

1

從模式角度來看,我會考慮封裝到一個類中,該類負責與遠程站點的交互(沒有其他責任)。在該領域有各種模式 - 委託,門面,演示者 - 但基本邏輯將是相同的。

因此,您可以創建一個TheirBook類,它包裝YourBook並以其網站所需的形式返回方法。

或者您可以創建一個PostToTheirSite類,它需要YourBook,但直接使用他們的語義生成POST請求。

在任何一種情況下,您都會生成一個專門的代碼,只負責語義翻譯,而不是任何其他形式的業務邏輯。