我習慣於使用Dart,在服務器和客戶端之間共享類型與將相關包導入到項目中一樣簡單。Yesod - 服務器和客戶端之間的共享類型
Yesod/Haskell可以完成類似的工作嗎?我應該爲客戶使用GHCJS嗎?也許榆樹?我們的目標是不必擔心服務器和客戶端之間的數據傳輸會受到影響 - 而且也不必編寫單行的JS代碼。 :o)
我一直沒有找到任何好的,初學者友好的文檔,說明如何用Haskell最好地解決這個問題。我懷疑我只是沒有看到正確的地方。任何和所有的幫助都是值得歡迎的。
我習慣於使用Dart,在服務器和客戶端之間共享類型與將相關包導入到項目中一樣簡單。Yesod - 服務器和客戶端之間的共享類型
Yesod/Haskell可以完成類似的工作嗎?我應該爲客戶使用GHCJS嗎?也許榆樹?我們的目標是不必擔心服務器和客戶端之間的數據傳輸會受到影響 - 而且也不必編寫單行的JS代碼。 :o)
我一直沒有找到任何好的,初學者友好的文檔,說明如何用Haskell最好地解決這個問題。我懷疑我只是沒有看到正確的地方。任何和所有的幫助都是值得歡迎的。
要使用GHCJS
實現這個你可以建立自己的項目出來的三個核心包以這種方式:
前端和後端都依賴共享當然。前端編譯爲GHCJS
,後端編號爲GHC
。
如果你想看到一個完整的例子,我會強烈推薦學習hsnippet。請看WsApi.hs
,其中定義了一組上行和下行消息。所有的JSON實例都在一個地方派生,並在前端和後端導入。
Hsnippet使用websockets。當然這不是要求。你可以在你自己的應用程序中使用普通的XHR。原則保持不變。您可以在共享包中定義API和序列化實例(通常爲JSON),並在前端和後端中導入相關模塊。
我個人也分享驗證碼,數據庫實體定義生成與持久等。一旦你設置共享額外的東西大多是複製粘貼到其中一個共享模塊,然後導入任何地方。
有[elm-export](https://github.com/krisajenkins/elm-export)項目,它創建基於Haskell類型的類型和解碼器。這看起來像最近保持的一羣。 –
還有[haste.app](https://hackage.haskell.org/package/haste-compiler-0.4/docs/Haste-App.html),一個「類型安全的客戶端 - 服務器通信框架」。我不知道它是否會與Yesod完美融合。 –