The soap package

[ Tags: library, mit, web ] [ Propose Tags ]

Tools to build SOAP clients using xml-conduit.

A mildly-complicated example:

import Network.SOAP
import Network.SOAP.Transport.HTTP

import Text.XML.Writer
import Text.XML.Stream.Parse as Parse
import           Data.Text (Text)
import qualified Data.Text as T

main :: IO ()
main = do
    -- Initial one-time preparations.
    transport <- initTransport "http://example.com/soap/endpoint" id (iconv "cp-1251")

    -- Making queries
    activeStaff <- listStaff transport True
    print activeStaff

data Person = Person Text Int deriving Show

listStaff :: Transport -> Bool -> IO [Person]
listStaff t active = invokeWS t "urn:dummy:listStaff" () body parser
    where
        body = element "request" $ element "listStaff" $ do
                   element "active" active
                   element "order" $ T.pack "age"
                   element "limit" (10 :: Int)

        parser = StreamParser $ force "no people" $ tagNoAttr "people" $ Parse.many parsePerson

        parsePerson = tagName "person" (requireAttr "age") $ \age -> do
                          name <- Parse.content
                          return $ Person name (read . T.unpack $ age)

Notice: to invoke HTTPS services you need to initialize a transport from soap-tls or soap-openssl.

Full examples available at source repo: https://bitbucket.org/dpwiz/haskell-soap/src/HEAD/soap/examples/

Properties

Versions 0.1.0.0, 0.1.0.1, 0.1.0.3, 0.1.0.4, 0.2.0.0, 0.2.0.2, 0.2.0.3, 0.2.0.4, 0.2.1.1, 0.2.1.2, 0.2.1.3, 0.2.2.0, 0.2.2.1, 0.2.2.2, 0.2.2.3, 0.2.2.4, 0.2.2.5, 0.2.2.6, 0.2.2.7, 0.2.3.0, 0.2.3.1, 0.2.3.2, 0.2.3.3, 0.2.3.4, 0.2.3.5 (info)
Change log changelog
Dependencies base (==4.*), bytestring, conduit, configurator, data-default, exceptions, http-client (>=0.2), http-types, iconv, mtl, resourcet, text, unordered-containers, xml-conduit, xml-conduit-writer, xml-types [details]
License MIT
Copyright (c) 2013-2017 Alexander Bondarenko
Author Alexander Bondarenko
Maintainer aenor.realm@gmail.com
Category Web
Home page https://bitbucket.org/dpwiz/haskell-soap
Uploaded Mon May 29 21:36:13 UTC 2017 by AlexanderBondarenko
Distributions LTSHaskell:0.2.3.5, NixOS:0.2.3.5, Stackage:0.2.3.5, Tumbleweed:0.2.3.5
Downloads 4321 total (35 in the last 30 days)
Rating 1.75 (1 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-05-29 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees