目前我正在嘗試構建一個寧靜的HTTP後端框架。僅使用四種HTTP方法創建任何類型的restful API?
我讀過一本書,叫做「平安web服務」,並啓動了一些腦力上的這個區域。
我現在爲什麼資源導向架構是一件好事,但仍有模糊的部分我不明白一個更大的圖片。我會試着解釋我的想法,看看有人能讓我更聰明。
難道不能說所有東西都是物體。汽車,鋼筆,書籍,甚至抽象的東西,如想法和概念都可能成爲一個對象。因爲單詞對象只是「某物」的人類發明。
難道你不能說每一個「東西」都是一種資源。硬幣,電腦甚至債務都可能是一種資源。但問題在於誰。債務是一種資源,但不是欠誰的人,而是欠他的人。與人類殘留物相同。他們是資源,但不是爲我們,而是爲了自然母親,因爲它需要平衡 - 進出 - 科學基礎(編程)。
資源(對象)似乎是名詞。如何形容詞和動詞?實際上似乎所有的東西都可以用名詞來描述。例如。
- 形容詞:這款車是紅色的
- 名詞:車內有一個紅色
- 形容詞:我累了
- 名詞:我有一個疲勞
- 動詞:我殺了他
- Noun:I create a kiss
- 動詞:I kiss her
- Noun:I create a kiss
這意味着resource = object = noun。來自不同角度的相同「東西」。
也許有動詞和不具有相當於名詞的形容詞,但隨後即只有在人類語言中的漏洞,而不是在概念本身。
那麼回到什麼開始了這一切。
當我真的想到只有4個(我知道還有一些)HTTP動詞 - POST,GET,PUT,DELETE - 我覺得它不能創建強大的restful API,因爲它們限制了API基本的CRUD操作。但是經過一些閱讀和思考之後,我意識到所有東西都只是可以創建,讀取,更改或刪除的資源。像內外一樣,簡單的規則,但是卻能夠創造任何東西。
但轉念一想,只存在「來」與「走出去」。也許只有「創建」和「刪除」。原因GET和PUT是可以用「創建讀取」和「創建更改」代替的動詞。
這一切只是我的母親自然的基本的想法玩。進出,創建和刪除。前者在編程領域已被廣泛接受。但後者你沒有聽到那麼多。但是,如果這是正確的,那麼這意味着HTTP Restful API可以用正確的方式創建任何東西,而不是通過修改版本(將動詞放在URI中,請求主體等)來創建任何東西,但僅使用POST, GET,PUT,DELETE。
我們只需將所有方法轉換爲資源/對象。相反的:
result = Books.search("Foo");
我們不得不思考:
result = Search.create(Books, "Foo");
你覺得這個怎麼樣? 考慮到這一點,是否可以使用四種HTTP方法創建任何種類的restful API? 是「創造」和「刪除」自然規律的另一部分嗎?
但也許這就是我想要的。進進出出。所以我們必須使用PUT或POST來表示「in」(aka request)和GET來表示「out」(aka響應)。在這種情況下,不應該有DELETE。爲了更普遍? – ajsie 2010-11-06 15:07:36
如果你不想實現DELETE,那就是你的電話。如果你確實需要它,那又是另一種情況。但你仍然有創造與改變的情況。儘管它們被抽象爲一種「寫入」方法,但在實際寫入之前它們仍然遵循不同的代碼路徑。 – Jeremy 2010-11-06 15:30:26