Список параметров haskell wreq
В отличном wreq
В библиотеке Haskell легко добавить один или несколько параметров запроса в URL:
opts = defaults & param "key" .~ ["value"]
Однако я пытаюсь добавить список параметров одновременно:
params = [("key1", "value1"), ("key2", "value2"), ("key3", "value3")]
Я знаю что есть функция params
но я не смог найти пример того, как его использовать.
1 ответ
И то и другое param <key>
а также params
это линзы:
param :: Text -> Lens' Options [Text]
params :: Lens' Options [(Text, Text)]
Не вдаваясь в подробности, вы можете придумать объектив, фокусирующий что-то, например param "foo"
фокусируется на некоторых [Text]
в Options
которые принадлежат параметру foo
(*). Затем вы можете изменить / запросить / манипулировать этими значениями с помощью правильной функции (см. Пакет линз).
Вы уже использовали (.~)
заменить текущие значения, и вы можете использовать его снова с params
:
default & params .~ [("key1", "value1"), ("key2", "value2"), ("key3", "value3")]
Вы можете думать о (.~)
в этом контексте как
(.~) :: Lens' a b -> b -> a -> a
-- concrete:
(.~) :: Lens' Options [(Text, Text)] -> [(Text, Text)] -> Options -> Options
(*) Это не на 100% верно, так как линзы позволяют делать разные вещи, но достаточно хороши для этого контекста.