Я пытаюсь использовать те же вызовы HTTPoison для вызова API, который возвращает либо несколько элементов, либо один элемент. Ответ для нескольких элементов помещает их в свойство «items», в то время как один элемент просто возвращает информацию об элементе в виде строки JSON.
Вот мой код:
def process_url(method, id \\ 0) do
if id > 0 do
"http://api.call.com/#{method}/#{id}?key=API_KEY"
else
"http://api.call.com/#{method}?key=API_KEY"
end
end
def process_response_body(body) do
body
|> Poison.decode!(as: %{"items" => [%Item{}]})
|> Map.fetch!("items")
end
В process_response_body, как я могу проверить свойство items в ответе JSON, и если оно не существует, обработать его по-другому?