2011-02-25 19 views
1

的第一篇文章,很抱歉,如果我違反任何約定提前:-)如何將不同的後端解決方案連接到通用API?

想知道你會如何處理以下情形。

我必須生成一個通用API,提供遊戲跟蹤功能(跟蹤點擊的內容,跟蹤某個事件是否發生等)。這個通用API需要連接到第三方提供的兩個(或更多)定製追蹤解決方案之一(例如itracku.com和itrackutoo.com)。定製的跟蹤解決方案具有類似的功能(trackClick,trackEvent),但它們所需參數的數量有很大不同(例如,需要傳遞1個參數,其他6個參數)。

爲了使泛型API能輕鬆地在兩種定製解決方案之間切換,我是否正確地假設所有參數都需要事先確定範圍以便於切換跟蹤解決方案?希望不必重新編譯.swfs來切換跟蹤解決方案(即通過XML配置切換)。我想通過讓我的泛型API函數接受單個對象作爲參數來實現這一點,例如

// itracku.com 
iTrackUObj:Object = new Object(); 
iTrackuObj.param1 = 1; 

// itrackutoo.com 
iTrackUTooObj:Object = new Object(); 
iTrackUTooObj.param1 = 1; 
iTrackUTooObj.param1 = 2; 
iTrackUTooObj.param1 = 3; 
iTrackUTooObj.param1 = 4; 
iTrackUTooObj.param1 = 5; 
iTrackUTooObj.param1 = 6; 

// my generic function, which accepts an object as a single parameter then validates the object 
myGenericFunction(iTrackUObj); 

//…or 

myGenericFunction(iTrackUTooObj); 

你能想到一個更有效的方法來實現這個嗎?這更像是一個技術性的建築問題,而不是我認爲的ActionScript,但我認爲上述可能在實際應用中有點笨拙。

感謝任何幫助或建議

+0

如果我們知道參數是什麼,那麼給出答案會更容易。我意識到它可能不同於功能和功能,但是一個實際的例子會讓答案更容易。 – 2011-02-25 16:53:37

+0

基本上跟蹤Flash應用程序中的點擊和事件。因此,「myGenericFunction」可以是「trackClick」,一個後端解決方案所需的參數只能是一個ID,但對於其他潛在的數據列表,包括URL,引薦,屏幕分辨率等...... – 2011-02-28 11:08:55

回答

1

我會做個人的方法是創造一切可能的參數的任何跟蹤後端的可能可能使用一個通用的TrackObj。然後將TrackObj傳遞給您的通用TrackFunction,並在該函數內部創建TrackU或TrackUToo對象,並將其傳遞給選定後端的XML配置。

這樣,您的API擁有自己的通用前端API,只要您滿足API的要求,用戶就可以自動滿足他們可能在後臺使用的任何API的要求。這意味着用戶將始終需要提供6個參數,即使他們的後端只需要一個參數。雖然具有智能的默認值,但用戶可以更輕鬆地進行操作。

+0

感謝您的答覆。它似乎試圖在編譯.swf之前考慮所有可能的參數,這是我可以走的唯一途徑。明智的默認值會讓事情變得更容易,但很多參數都是強制性的,而不是可選的。嗯... – 2011-02-28 00:30:35

相關問題