Я использую -found / elm- aws -core для получения информации от AWS API, что, к сожалению, очень и очень противоречиво. Большинство конечных точек возвращают JSON, и это прекрасно работает с этой библиотекой, которой для выполнения запроса требуется декодер JSON, но конечная точка EC2 возвращает XML (потому что почему бы и нет).
Библиотека Насколько я могу судить, у меня нет опций не декодировать JSON, что совсем не работает:
let ec2 region = Service.defineRegional "ec2" "2016-11-15" Service.QUERY Service.SignV4 (Service.setXmlNamespace "https://ec2.amazonaws.com/doc/2016-11-15/") region in
let params = [("Action", "DescribeImages"), ("Version", "2016-11-15"), ("Owner.1", "self")] in
Http.request "DescribeImages" GET "/" Http.emptyBody JSONDECODERHERE |> Http.addQuery params |> Http.send (ec2 region) creds |> Task.attempt msg
Failed : Problem with the given value:
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<DescribeImagesResponse .......
Как вы можете видеть, вам нужно передать JSON Декодер на Http.request, но это, конечно, не получается при получении XML. Есть ли способ создать «фальшивый» JSON декодер, который бы на самом деле ничего не делал и просто передавал необработанную строку? Я пытался использовать Decode. строка, но это все еще фактически расшифровывает это, которое терпит неудачу. Если бы был какой-то способ, я мог бы потом вручную запустить на нем декодер XML в своей функции обновления, что было бы хорошо.
Спасибо