http-api-data: Converting to/from HTTP API data like URL pieces, headers and query parameters.

[ bsd3, library, web ] [ Propose Tags ]

Please see README.md


[Skip to Readme]
Versions [faq] 0.1.0, 0.1.1, 0.1.1.1, 0.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.3, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.7.1, 0.3.7.2, 0.3.8, 0.3.8.1, 0.3.9, 0.3.10, 0.4, 0.4.1 (info)
Change log CHANGELOG.md
Dependencies base (>=4.7 && <4.10), bytestring, containers, hashable, text (>=0.5), time, time-locale-compat (>=0.1.1.0 && <0.2), unordered-containers, uri-bytestring, uuid-types (>=1.0.2 && <1.1) [details]
License BSD-3-Clause
Author Nickolay Kudasov <nickolay.kudasov@gmail.com>
Maintainer Nickolay Kudasov <nickolay.kudasov@gmail.com>
Category Web
Home page http://github.com/fizruk/http-api-data
Source repo head: git clone https://github.com/fizruk/http-api-data
Uploaded by NickolayKudasov at Thu Jan 19 21:25:26 UTC 2017
Distributions Arch:0.4.1, Debian:0.3.8.1, Fedora:0.3.8.1, LTSHaskell:0.4, NixOS:0.4.1, Stackage:0.4, openSUSE:0.4.1
Downloads 27518 total (729 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2017-01-19 [all 1 reports]

Modules

[Index]

Flags

NameDescriptionDefaultType
use-text-show

Use text-show library for efficient ToHttpApiData implementations.

DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for http-api-data-0.3.5

[back to package description]

http-api-data

Build Status Hackage package Stackage LTS Stackage Nightly

This package defines typeclasses used for converting Haskell data types to and from HTTP API data.

Examples

Booleans:

>>> toUrlPiece True
"true"
>>> parseUrlPiece "false" :: Either Text Bool
Right False
>>> parseUrlPieces ["true", "false", "undefined"] :: Either Text [Bool]
Left "could not parse: `undefined'"

Numbers:

>>> toQueryParam 45.2
"45.2"
>>> parseQueryParam "452" :: Either Text Int
Right 452
>>> toQueryParams [1..5]
["1","2","3","4","5"]
>>> parseQueryParams ["127", "255"] :: Either Text [Int8]
Left "out of bounds: `255' (should be between -128 and 127)"

Strings:

>>> toHeader "hello"
"hello"
>>> parseHeader "world" :: Either Text String
Right "world"

Calendar day:

>>> toQueryParam (fromGregorian 2015 10 03)
"2015-10-03"
>>> toGregorian <$> parseQueryParam "2016-12-01"
Right (2016,12,1)

Contributing

Contributions and bug reports are welcome!