Here is an example.
HTTP Server.
defmodule HttpSrv do
use Maru.Router
plug(Plug.Logger)
require Logger
plug CORSPlug
post do
Logger.info("[Maru] Received a post request.")
## Start the processing of each request
resp = Calculator.calc(5, 5)
Maru.Response.json(conn, %{response: resp})
end
end
The GenServer module.
defmodule Calculator do
use GenServer
require Logger
## Client API
def start_link(_arg) do
GenServer.start_link(__MODULE__, :ok, name: __MODULE__)
end
def calc(a, b) do
GenServer.call(__MODULE__, {:calc, a, b}, :infinity)
end
## Server Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_call({:calc, a, b}, _from, state) do
result = a + b
{:reply, result, state}
end
end


















