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

[ bsd3, library, web ] [ Propose Tags ]

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

Please see README.md


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
use-text-show

Use text-show library for efficient ToHttpApiData implementations.

Disabled

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

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 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, 0.4.1.1, 0.4.2, 0.4.3, 0.5, 0.5.1, 0.6, 0.6.1 (info)
Change log CHANGELOG.md
Dependencies base (>=4.12.0.0 && <4.21), bytestring (>=0.10.8.2 && <0.13), containers (>=0.6.0.1 && <0.8), cookie (>=0.4.3 && <0.6), hashable (>=1.4.4.0 && <1.5), http-types (>=0.12.4 && <0.13), tagged (>=0.8.8 && <0.9), text (>=1.2.3.0 && <1.3 || >=2.0 && <2.2), text-iso8601 (>=0.1.1 && <0.2), time-compat (>=1.9.5 && <1.10), transformers (>=0.5.6.2 && <0.7), unordered-containers (>=0.2.20 && <0.3), uuid-types (>=1.0.6 && <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 phadej at 2024-05-22T10:04:17Z
Distributions Arch:0.5.1, Debian:0.4.1.1, Fedora:0.5, LTSHaskell:0.5.1, NixOS:0.5.1, Stackage:0.6, openSUSE:0.6
Reverse Dependencies 138 direct, 956 indirect [details]
Downloads 79144 total (393 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-05-22 [all 1 reports]

Readme for http-api-data-0.6.1

[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!