servant

    6熱度

    1回答

    我試圖將一些ByteString中繼給客戶端(瀏覽器)。客戶端將不知道被請求文檔的內容類型,因此我試圖將適當的內容類型響應發送回客戶端。該文檔可以是圖像或pdf或word文檔等。 例如,客戶端將請求/document?id=55,服務器將響應相應的內容類型和關聯的ByteString。 我遵循示例here:我爲圖像創建了一些東西。 data IMAGE instance Accept IMAG

    1熱度

    1回答

    我想創建客戶端綁定到Web API使用servant庫。 我希望能夠發送任何JSON對象。 import Control.Monad.Trans.Except (ExceptT, runExceptT) import Data.Proxy import Network.HTTP.Client (Manager) import Servant.API import Ser

    3熱度

    1回答

    用Servant實現文件上傳API的方法是什麼? 我想處理「標準」multipart/form-data,但無法弄清楚如何在僕人中聲明它。 這顯然是行不通的,因爲它不能處理的multipart: type API = "file" :> ReqBody '[OctetStream] ByteString :> Post '[OctetStream]() 僕人是否支持文件上傳?

    6熱度

    1回答

    我正在嘗試向我的servant服務器添加功能,該服務器將從Amazon S3獲取文件並將其傳回給用戶。 由於文件可能很大,我不想在本地下載它們,然後將它們提供給客戶端,我寧願將它們直接從S3傳輸到客戶端。 我使用Amazonka來處理S3的工作,我可以得到一個S3文件流作爲Conduit接收器。 但是現在我不知道如何從Sink到EitherT ServantErr IO a。 任何人都可以解釋我如

    5熱度

    1回答

    使用基本身份驗證 type SubApi = API1 :<|> API2 :<|> API3 type API = BasicAuth "foo-realm" AuthData :> SubApi 保護的API支持AuthData -> Handler a類型的處理器。 我有一組處理程序: handler1 :: Request1 -> AuthMonad Response handle

    1熱度

    1回答

    我創建了一個自定義的僕人處理 type ServiceSet = TVar (M.Map String [MicroService]) type LocalHandler = ReaderT ServiceSet IO 但我沒能找到一種方法來響應一個404未找到的狀態代碼,客戶端在以下功能: getService :: String -> LocalHandler MicroService

    1熱度

    2回答

    我使用僕人定製單子堆棧:從DB和行爲 newtype AppHandler a = AppHandler { runHandler :: ReaderT Config (ExceptT ServantErr IO) a } deriving (Functor, Applicative, Monad, MonadReader Config, MonadError ServantErr, M