You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.5 KiB
36 lines
1.5 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
|
<pkgmetadata>
|
|
<maintainer type="project">
|
|
<email>haskell@gentoo.org</email>
|
|
<name>Gentoo Haskell</name>
|
|
</maintainer>
|
|
<longdescription>
|
|
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.
|
|
</longdescription>
|
|
</pkgmetadata>
|