Forum Discussion

Breticious's avatar
Breticious
Helper I
7 years ago
Solved

Passing Variables in API Post Request JSON Body

I am looking to make a semi-flexible template where the user punches in their own personal credentials into the JSON body being passed into my GET. I want to replace the [username parameter] and [password parameter] with the value in the parameter without having to include the quotation (") or double quotation inside the request. Help! Here is the BODY variable that I'm talking about:

BODY = "{
        	""UserName"":""[username parameter]"",
        	""Password"":""[password parameter]""
        }"

Help! Anyone!

  • Ok. I figured it out. I had to use an annoying text combination:

    let
        LOGIN = Text.Combine({"""",Login_Parameter,""""},""),
        PW = Text.Combine({"""",Login_Password,""""},""),
        body = "{
            	""UserName"":"&LOGIN&",
            	""Password"":"&PW&"
            }",

    Just to reiterate, the parameters I setup are named Login_Parameter and Login_Password and formatted as Text. The result comes out as:

    body = {
            	"UserName":"breticious",
            	"Password":"password123"
            }

4 Replies

  • Ok. I figured it out. I had to use an annoying text combination:

    let
        LOGIN = Text.Combine({"""",Login_Parameter,""""},""),
        PW = Text.Combine({"""",Login_Password,""""},""),
        body = "{
            	""UserName"":"&LOGIN&",
            	""Password"":"&PW&"
            }",

    Just to reiterate, the parameters I setup are named Login_Parameter and Login_Password and formatted as Text. The result comes out as:

    body = {
            	"UserName":"breticious",
            	"Password":"password123"
            }
    • Terry2023's avatar
      Terry2023
      Frequent Visitor

      can this be used to resolve the following substitution for parameters?

       

       

      let
      dateRangeStart=dateRangeStart,
      dateRangeEnd=dateRangeEnd,
      body = "{ ""dateRangeStart"": ""2022-01-01T00:00:00.000"", ""dateRangeEnd"": ""2022-12-01T23:59:59.000"", ""detailedFilter"": { ""page"": ""1"", ""pageSize"": ""500"" } }", Source = Json.Document

  • Anonymous's avatar
    Anonymous
    Not applicable

    Breticious,

    What Power Query code do you use to connect to the API in Power BI Desktop? I am not very sure about the requirement that " want to replace the [username parameter] and [password parameter] with the value in the parameter ". Could you please explain it?

    Regards,
    Lydia

    • Breticious's avatar
      Breticious
      Helper I

      Sorry for the late response, Anonymous  but I'm not sure I follow what you are asking. 

       

      I am using Mashup in the Advanced Editor of Power BI to directly connect to a RESTFUL API that uses JSON objects to pass things back and forth. It requires an authentication token.

       

      It was a giant pain in the rear and took a LOT of work to pass everything just right. Does that answer your question?