Lather.Server.Handler (lather v1.0.42)
View SourceGeneric HTTP handler for SOAP server endpoints.
This module provides SOAP server functionality without requiring Plug. It can be used with any HTTP server (Phoenix, Bandit, Cowboy, etc.).
Usage
In Phoenix controller:
defmodule MyAppWeb.SOAPController do
use MyAppWeb, :controller
def handle_soap(conn, _params) do
case Lather.Server.Handler.handle_request(conn.method, conn.request_path, conn.req_headers, conn.assigns.raw_body, MyApp.UserService) do
{:ok, status, headers, body} ->
conn
|> put_status(status)
|> put_headers(headers)
|> text(body)
{:error, status, headers, body} ->
conn
|> put_status(status)
|> put_headers(headers)
|> text(body)
end
end
endWith any HTTP server:
body = read_request_body(request)
headers = get_request_headers(request)
case Lather.Server.Handler.handle_request("POST", "/soap", headers, body, MyApp.UserService) do
{:ok, status, response_headers, response_body} ->
send_response(status, response_headers, response_body)
{:error, status, response_headers, response_body} ->
send_response(status, response_headers, response_body)
end
Summary
Functions
Handles a SOAP HTTP request.