2013-07-09 51 views
0

新的休息,沒有甚至知道什麼剩下的就是,我開始看一些影片,並拿起了一本書,以幫助引導我朝着正確的做法。不幸的是,我的第一個版本完全拙劣,我很可能不得不打破任何使用該實現的客戶。爲了確保我不需要再次這樣做,我需要您的幫助!保持事情的RESTful

我有我關心的是這裏的幾個數據庫表: 「PrimaryBuyer」 &「AllBuyers」 它們共享大部分字段,但AllBuyers有幾件事情主要不,反之亦然。進入系統後,每個主要買家都會獲得唯一的「CaseNumber」。這除了「序列號」之外還用於識別「AllBuyers」。此CaseNumber返回給Web服務的用戶以供將來使用。然而序列號是基於它們在XML/JSON中的位置而暗示的。

要指定這些表 - >例如,如果我買車,我會的主要買家,並會正是如此可以進入初級和AllBuyers表。但是,如果我的信用不好,我可以讓我的配偶在貸款上進行交易。這將使她成爲第二位買家,她將被專門進入'AllBuyers'餐桌。

我現在有一個REST URI設置爲「/買家/」來強制要求,所有信息對所有買家在輸入一次。同樣,如果我要對此URI進行更新,則主表在兩個表中都會更新,並且有效載荷中的任何輔助買方都將替換先前存在的那個。

歸根結底,是沒有辦法直接訪問表「PrimaryBuyer」和「AllBuyers」

我一直想解決這個問題的解決方案,但一直未能想到的任何東西,是必然是RESTful或不爲客戶帶來痛苦。如果認爲用戶應該(比如添加)POST到/ primarybuyer /,獲取返回的casenumber,然後發佈相同的信息,然後發送一些to/allbuyers /?這看起來似乎對帶寬有點無聊。應該把事情留在目前的狀態?

希望這沒有太多的信息來回答這樣一個看似簡單的問題。

回答

0

它是荒謬的認爲用戶應該POST(上加說吧)到 /primarybuyer /,拿回來casenumber,然後POST相同 信息,然後一些人/ allbuyers /?

當您談論「用戶」時,您是指使用您的服務的人或系統(瀏覽器)?

使用REST的服務通常由一個系統,今天這意味着很多瀏覽器的JavaScript +製成。爲用戶完成工作是在Web門面完成的,後面是運行所有(Javascript)代碼以創建相應的REST調用。

+0

澄清,這不是一個公共web api。我們將產品部署到我們的客戶,我們的客戶廣告代理專門使用網絡服務將買家信息轉儲到他們產品的數據庫中。 我們的客戶:僱用廣告 - >廣告商:尋找潛在買家,通過他們正在使用的任何程序發送信息 - > WS:獲取信息並將其發送到我們客戶的程序。 – user2402831

0

爲什麼不把買家信息作爲序列化對象發佈到其他服務器上?您可以通過請求的參數部分執行此操作。當請求到達服務器時,可以反序列化對象,並實現更新數據庫的邏輯。

有點像亞馬遜如何做它?http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddInstanceGroups.html

+0

我不確定我是否理解,所以我必須做一些搜索。我如何理解這一點,是否會像現在這樣。他們發送一個買方的JSON數組,並將它們全部轉儲到它們各自的表中。 – user2402831

+0

我的意思是,如果您將所有買家和主要買家置於同一個對象中,那麼將它們置於兩個不同的表中會非常容易,尤其是在使用java的情況下,如果使用類似hibernate的東西。 – jmpyle771

0

如果客戶端應用程序POST /PrimaryBuyer沒有理由服務器也不能這種情況下,信息複製到/AllBuyers資源,反之亦然。