Uploaded by
Published on

CI Release Pursuit Maintainer: garyb Maintainer: thomashoneyman

HTTP method type. The definition of the type is based on HTTP/1.1 with RFC 2518 and RFC 5789.


Install http-methods with Spago:

spago install http-methods

Quick start

module PrintingExample where

import Data.HTTP.Method (Method(..), print)
import Data.Either (Either(..))

-- To print an HTTP method, use the `print` function:

-- same as "GET"
getMethod :: String
getMethod = print (Left GET)
module ParsingExample where

import Data.HTTP.Method (Method(..), CustomMethod(..), parse, fromString)
import Data.Either (Either(..))

-- To parse an HTTP method, use the `fromString` function:

-- same as `Left GET`.
getMethod :: Either Method CustomMethod
getMethod = fromString "GET"

-- Any methods not defined by `Method` will be parsed as a custom method:

-- same as `Right (CustomMethod "FOO")`
fooMethod :: Either Method CustomMethod
fooMethod = fromString "FOO"

-- If you want to handle the parsing in a more controlled way,
-- use `parse` directly.

-- Only accept methods defined in the Method type
-- and ignore all other custom methods
maybeMethod :: String -> Maybe Method
maybeMethod = parse Just (\_ -> Nothing)


http-methods documentation is stored in a few places:

  1. Module documentation is published on Pursuit.
  2. See the changelog.

If you get stuck, there are several ways to get help:


You can contribute to http-methods in several ways:

  1. If you encounter a problem or have a question, please open an issue. We'll do our best to work with you to resolve or answer it.

  2. If you would like to contribute code, tests, or documentation, please read the contributor guide. It's a short, helpful introduction to contributing to this library, including development instructions.

  3. If you have written a library, tutorial, guide, or other resource based on this package, please share it on the PureScript Discourse! Writing libraries and learning resources are a great way to help this library succeed.