Specification of the..
error() :: {:error, %Shopify.Response{code: term(), data: term()}}
request() :: %Shopify.Request{ body: term(), full_url: term(), headers: term(), path: term(), resource: term(), type: term() }
success() :: {:ok, %Shopify.Response{code: term(), data: term()}}
delete(request()) :: success() | error()
get(request()) :: success() | error()
post(request()) :: success() | error()
put(request()) :: success() | error()