Forum Discussion

LeonardSchwenk's avatar
LeonardSchwenk
Frequent Visitor
4 years ago
Solved

REST API CALL in function wont work due to invalid input

My function looks like the following.

 

 

= (playerId as text) as table=>
let
    Source = Json.Document(

        Web.Contents(
            "https://api.greatAPI.io/v1/",
            [
                RelativePath ="players/" & (playerId)
            ],
                [
                    Headers=
                    [
                        Accept="application/json", Authorization="Bearer XXXXXXXXXXXXXXX"
                    ]
            ]))
in
    #"Source"

 

 

 

Error Message:

 

 

Error in query ''. Expression.Error: 3 arguments were passed to a function that expects between 1 and 2 arguments.
Details:
    pattern=
    arguments=[list]

 

 

 
The input playerId:

 

 

xd7u2cf3-5412f6-4b0d-r300-a8bss41c7cda

 

 

I tried various header syntax but nothing seems to work.
As the error says 3 argmuments where passed is wrong because just one argument is passed, I assumend that somehow the "-" make a problem.
Tried also to but the playerId into "" or ''.
Nothing worked so far.

  • Hi LeonardSchwenk ,
    the Web.Contents function only accepts 2 parameters. So you have to nest the records into one like so:


    (playerId as text) as table=>
    let
        Source = Json.Document(
    
            Web.Contents(
                "https://api.greatAPI.io/v1/",
                [
                    RelativePath ="players/" & (playerId)
                ,
                    
                        Headers=
                        [
                            Accept="application/json", Authorization="Bearer XXXXXXXXXXXXXXX"
                        ]
                ]))
    in
        #"Source"
  • Hi LeonardSchwenk ,
    no, it's not.
    There is no opening square bracket before "Headers" for example.
    I'd recommend to try it out.

3 Replies

  • ImkeF's avatar
    ImkeF
    Community Champion

    Hi LeonardSchwenk ,
    the Web.Contents function only accepts 2 parameters. So you have to nest the records into one like so:


    (playerId as text) as table=>
    let
        Source = Json.Document(
    
            Web.Contents(
                "https://api.greatAPI.io/v1/",
                [
                    RelativePath ="players/" & (playerId)
                ,
                    
                        Headers=
                        [
                            Accept="application/json", Authorization="Bearer XXXXXXXXXXXXXXX"
                        ]
                ]))
    in
        #"Source"
    • LeonardSchwenk's avatar
      LeonardSchwenk
      Frequent Visitor

      ImkeF  Maybe im missing something but thats the query I posted. How do I nest the parameters then ?
      Thanks

  • ImkeF's avatar
    ImkeF
    Community Champion

    Hi LeonardSchwenk ,
    no, it's not.
    There is no opening square bracket before "Headers" for example.
    I'd recommend to try it out.