envelope alternatives and similar packages
Based on the "Web" category.
Alternatively, view envelope alternatives based on common mentions on social networks and blogs.
-
swagger-petstore
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
haskell-bitmex-rest
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
servant
Main repository for the servant libraries — DSL for describing, serving, querying, mocking, documenting web applications and more! -
yesod-persistent
A RESTful Haskell web framework built on WAI. -
scotty
Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository) -
neuron
Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote) -
airship
Helium + Webmachine = Airship. A toolkit for building declarative, RESTful web apps. -
apecs-gloss
a fast, extensible, type driven Haskell ECS framework for games -
haskell-kubernetes
Haskell bindings to the Kubernetes API (via swagger-codegen) -
digestive-functors
A general way to consume input using applicative functors -
servant-elm
Automatically derive Elm functions to query servant webservices -
hbro
[Unmaintained] A minimal web-browser written and configured in Haskell. -
tagsoup
Haskell library for parsing and extracting information from (possibly malformed) HTML/XML documents -
backprop
Heterogeneous automatic differentiation ("backpropagation") in Haskell -
kubernetes-client-core
Haskell client for the kubernetes API. A work in progress. -
engine-io
A Haskell server implementation of the Engine.IO and Socket.IO (1.0) protocols -
keera-hails-reactive-htmldom
Keera Hails: Haskell on Rails - Reactive Programming Framework for Interactive Haskell applications -
ghcjs-base
base library for GHCJS for JavaScript interaction and marshalling, used by higher level libraries like JSC -
android-lint-summary
Prettier display of Android Lint issues
Clean code begins in your IDE with SonarLint
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of envelope or a related project?
README
Web.Envelope
This module exports an Envelope
type that can be used to wrap reponses from a JSON REST API. It provides a successful Success
response, and a failure Err
response.
Here is a small demonstration of returning a success response:
>>> import qualified Data.ByteString.Lazy.Char8 as C8
>>> import Data.Aeson (decode, encode)
>>> let successEnvelope = toSuccessEnvelope 3 :: Envelope Text Int
>>> C8.putStrLn $ encode successEnvelope
{"data":3}
>>> decode "{\"data\":3}" :: Maybe (Envelope Text Int)
Just (EnvelopeSuccess (Success 3))
Your data gets wrapped in an object with a single "data"
field:
{
"data": 3
}
Now lets look at how an error response is encoded and decoded. It is encoded as an object with two members: @\"extra\"@ and @\"error\"@.
>>> let errorEnvelope = toErrEnvelope "DB_ERROR" "there was an error in the database" :: Envelope String Int
>>> C8.putStrLn $ encode errorEnvelope
{"extra":"there was an error in the database","error":"DB_ERROR"}
>>> decode "{\"extra\":\"there was an error in the database\",\"error\":\"DB_ERROR\"}" :: Maybe (Envelope String Int)
Just (EnvelopeErr (Err {errErr = "DB_ERROR", errExtra = Just "there was an error in the database"}))
Your error type and extra message get wrapped in an object:
{
"extra": "there was an error in the database",
"error": "DB_ERROR"
}
*Note that all licence references and agreements mentioned in the envelope README section above
are relevant to that project's source code only.