Если вы хотите убедиться, что ответная полезная нагрузка имеет все эти ключи и обрабатывать сбой по-другому, вы можете использовать функцию с разными предложениями:
defp local_vars(
%{
"total pages" => tp,
"page" => cp,
"total entities" => te,
"queryId" => qid,
"entities" => ue
}), do: {:ok, {tp, cp, te, qid, ue}}
defp local_vars(_), do: {:error, :bad_payload}
и вызывать ее из своего кода следующим образом
case local_vars(res["payload"]) do
{:ok, {total_pages, current_page,
total_entities, query_id,
unprocessed_entities}} ->
# here you have all the local variables bound
{:error, reason} -> IO.puts("Failed with reason #{reason}")
end
Или просто выполните всю работу внутри успешного предложения, тогда вам не понадобится case
.