因此,我花了很多時間編寫一個很酷的RESTful API。爲了簡化,您可以通過執行/users
的POST
請求來創建新用戶。讓HTML表單利用JSON API
太好了吧?但是現在我的HTML表單想要創建一個用戶。它的所有元素都與需要傳遞給/users
的參數相同。因此,form
充分利用這個優秀的API似乎很有意義。
我的表單位於/register.html
。它的屬性現在是:action="/users" method="post"
。與開箱即用的API完美整合!
問題?我的RESTful API將以JSON響應,而我的表單無法處理此響應。例如,當傳遞一個無效的電子郵件地址時,返回的主體可能是{"error": 400, "msg": "The given email address is invalid."}
。相反,register.html
應該收到此消息並顯示適當的消息,同時允許用戶修復輸入錯誤。
一個明顯的解決方案是根本不發送表單,而是使用AJAX根據輸入的值與API進行交互。然而,這是遠遠不夠理想的,因爲對於那些沒有Javascript的人來說,表單是沒用的。
有沒有其他方法可以考慮?或者我不應該將表單輸入與我的API結合起來?
我不認爲這很重要,但我正在使用Node.js.
看起來很有趣,但用戶在他的地址欄中看到「/ api/v1/users」會不會令人困惑?他可能會期待'/ register.html'。 – Tom
解決與原始地址register.html不同的地址上的輸入問題的另一個問題是,即使這本質上是相同的頁面,地址也是非常不同的。搜索引擎對此不以爲然,並且會搞砸網站分析。 – Tom
並繼續..如果用戶要刷新頁面(導航到相同的地址),瀏覽器會發送一個GET請求到'/ api/v1/users',它具有完全不同的含義。該請求將檢索所有用戶,這是用戶沒有預料到的。 – Tom