2021-08-04 14:29:11 +00:00
|
|
|
name: http-media
|
|
|
|
version: 0.8.0.0
|
2023-01-24 15:54:57 +00:00
|
|
|
x-revision: 7
|
2021-08-04 14:29:11 +00:00
|
|
|
license: MIT
|
|
|
|
license-file: LICENSE
|
|
|
|
author: Timothy Jones
|
|
|
|
maintainer: Timothy Jones <tim@zmthy.net>
|
|
|
|
homepage: https://github.com/zmthy/http-media
|
|
|
|
bug-reports: https://github.com/zmthy/http-media/issues
|
|
|
|
copyright: (c) 2012-2019 Timothy Jones
|
|
|
|
category: Web
|
|
|
|
build-type: Simple
|
|
|
|
cabal-version: >= 1.10
|
|
|
|
synopsis: Processing HTTP Content-Type and Accept headers
|
|
|
|
description:
|
|
|
|
This library is intended to be a comprehensive solution to parsing and
|
|
|
|
selecting quality-indexed values in HTTP headers. It is capable of
|
|
|
|
parsing both media types and language parameters from the Accept and
|
|
|
|
Content header families, and can be extended to match against other
|
|
|
|
accept headers as well. Selecting the appropriate header value is
|
|
|
|
achieved by comparing a list of server options against the
|
|
|
|
quality-indexed values supplied by the client.
|
|
|
|
.
|
|
|
|
In the following example, the Accept header is parsed and then matched
|
|
|
|
against a list of server options to serve the appropriate media using
|
|
|
|
'mapAcceptMedia':
|
|
|
|
.
|
|
|
|
> getHeader >>= maybe send406Error sendResourceWith . mapAcceptMedia
|
|
|
|
> [ ("text/html", asHtml)
|
|
|
|
> , ("application/json", asJson)
|
|
|
|
> ]
|
|
|
|
.
|
|
|
|
Similarly, the Content-Type header can be used to produce a parser for
|
|
|
|
request bodies based on the given content type with 'mapContentMedia':
|
|
|
|
.
|
|
|
|
> getContentType >>= maybe send415Error readRequestBodyWith . mapContentMedia
|
|
|
|
> [ ("application/json", parseJson)
|
|
|
|
> , ("text/plain", parseText)
|
|
|
|
> ]
|
|
|
|
.
|
|
|
|
The API is agnostic to your choice of server.
|
|
|
|
|
|
|
|
extra-source-files:
|
|
|
|
CHANGES.md
|
|
|
|
|
|
|
|
library
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
|
|
ghc-options: -Wall
|
|
|
|
|
|
|
|
hs-source-dirs:
|
|
|
|
src
|
|
|
|
|
|
|
|
default-extensions:
|
|
|
|
OverloadedStrings
|
|
|
|
|
|
|
|
exposed-modules:
|
|
|
|
Network.HTTP.Media
|
|
|
|
Network.HTTP.Media.Accept
|
|
|
|
Network.HTTP.Media.Charset
|
|
|
|
Network.HTTP.Media.Encoding
|
|
|
|
Network.HTTP.Media.Language
|
|
|
|
Network.HTTP.Media.MediaType
|
|
|
|
Network.HTTP.Media.RenderHeader
|
|
|
|
|
|
|
|
other-modules:
|
|
|
|
Network.HTTP.Media.Charset.Internal
|
|
|
|
Network.HTTP.Media.Encoding.Internal
|
|
|
|
Network.HTTP.Media.Language.Internal
|
|
|
|
Network.HTTP.Media.MediaType.Internal
|
|
|
|
Network.HTTP.Media.Quality
|
|
|
|
Network.HTTP.Media.Utils
|
|
|
|
|
|
|
|
build-depends:
|
2023-01-24 15:54:57 +00:00
|
|
|
base >= 4.8 && < 4.18,
|
2021-08-04 14:29:11 +00:00
|
|
|
bytestring >= 0.10 && < 0.12,
|
|
|
|
case-insensitive >= 1.0 && < 1.3,
|
|
|
|
containers >= 0.5 && < 0.7,
|
|
|
|
utf8-string >= 0.3 && < 1.1
|
|
|
|
|
|
|
|
test-suite test-http-media
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
main-is: Test.hs
|
|
|
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
|
|
ghc-options: -Wall
|
|
|
|
|
|
|
|
hs-source-dirs:
|
|
|
|
src
|
|
|
|
test
|
|
|
|
|
|
|
|
default-extensions:
|
|
|
|
OverloadedStrings
|
|
|
|
|
|
|
|
other-extensions:
|
|
|
|
TupleSections
|
|
|
|
|
|
|
|
other-modules:
|
|
|
|
Network.HTTP.Media
|
|
|
|
Network.HTTP.Media.Accept
|
|
|
|
Network.HTTP.Media.Accept.Tests
|
|
|
|
Network.HTTP.Media.Charset
|
|
|
|
Network.HTTP.Media.Charset.Gen
|
|
|
|
Network.HTTP.Media.Charset.Internal
|
|
|
|
Network.HTTP.Media.Charset.Tests
|
|
|
|
Network.HTTP.Media.Gen
|
|
|
|
Network.HTTP.Media.Encoding
|
|
|
|
Network.HTTP.Media.Encoding.Gen
|
|
|
|
Network.HTTP.Media.Encoding.Internal
|
|
|
|
Network.HTTP.Media.Encoding.Tests
|
|
|
|
Network.HTTP.Media.Language
|
|
|
|
Network.HTTP.Media.Language.Gen
|
|
|
|
Network.HTTP.Media.Language.Internal
|
|
|
|
Network.HTTP.Media.Language.Tests
|
|
|
|
Network.HTTP.Media.MediaType
|
|
|
|
Network.HTTP.Media.MediaType.Gen
|
|
|
|
Network.HTTP.Media.MediaType.Internal
|
|
|
|
Network.HTTP.Media.MediaType.Tests
|
|
|
|
Network.HTTP.Media.Quality
|
|
|
|
Network.HTTP.Media.RenderHeader
|
|
|
|
Network.HTTP.Media.Tests
|
|
|
|
Network.HTTP.Media.Utils
|
|
|
|
|
|
|
|
build-depends:
|
|
|
|
base >= 4.7 && < 4.13,
|
|
|
|
bytestring >= 0.10 && < 0.12,
|
|
|
|
case-insensitive >= 1.0 && < 1.3,
|
|
|
|
containers >= 0.5 && < 0.7,
|
|
|
|
utf8-string >= 0.3 && < 1.1,
|
|
|
|
QuickCheck >= 2.8 && < 2.14,
|
|
|
|
test-framework >= 0.8 && < 0.9,
|
|
|
|
test-framework-quickcheck2 >= 0.3 && < 0.4
|
|
|
|
|
|
|
|
source-repository head
|
|
|
|
type: git
|
|
|
|
location: https://github.com/zmthy/http-media
|