使用条件查询参数构建URL

斯蒂芬·B

我有像这样的简单网址生成器:

prepareUrl : Params -> String
prepareUrl params = 
   Url.crossOrigin "http://someapi.com/"
    ["posts"]
    [ 
    , Url.string "currency" params.currency
    , Url.string "members[0][birthday]" "12.12.1989"
    ]

当我收到像membersCount 2或3这样的参数时,我需要像这样在请求中“克隆” members []:

params.membersCount = 3

prepareUrl : Params -> String
    prepareUrl params = 
       Url.crossOrigin "http://someapi.com/"
        ["posts"]
        [ 
        , Url.string "currency" params.currency
        , Url.string "members[0][birthday]" "12.12.1989"
        , Url.string "members[1][birthday]" "12.12.1989"
        , Url.string "members[2][birthday]" "12.12.1989"
        ]

日期字符串本身可以保持不变,没关系。我怎样才能做到这一点?

乍得·吉尔伯特

由于第三个参数Url.Builder.crossOrigin需要的列表QueryParameter值,你可以建立一个列表0memberCount使用List.range

prepareUrl : Params -> String
prepareUrl params = 
   Url.crossOrigin "http://someapi.com/"
    ["posts"]
    (Url.string "currency" params.currency :: birthdayParams params.memberCount)

birthdayParams : Int -> List Url.QueryParameter
birthdayParams memberCount =
    List.range 0 (memberCount - 1)
        |> List.map (\i -> Url.string ("members[" ++ String.fromInt i ++ "][birthday]") "12.12.1989")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章