/
Microsoft Power-BI
Microsoft Power-BI
This documentation helps you to integrate Wordbee API With Power-BI
How to create custom requests on PowerBi Desktop
Step 1
Open PowerBI Desktop:
Step 2
Create a new blank query, go to the header menu and select "New Source > Empty Query"
Step 3
"Edit Queries" in order to create new specific queries for Wordbee API:
Request samples:
Change the query like the next part.
Reference: https://docs.microsoft.com/en-us/power-bi/desktop-query-overview
API v1
Get projects
let /***************************** * Variables *****************************/ url = "http://api.wordbee-translator.com:32490/api/connect?account=accountCode&pwd=XXXXXXX", urlProjectsList = "http://api.wordbee-translator.com:32490/projects?token=", GetXml = Web.Contents(url), XmlToken = Xml.Tables(GetXml), AccessToken = XmlToken{0}[#"Element:Text"], /***************************** * Results *****************************/ Source = Xml.Tables(Web.Contents(Text.Combine({urlProjectsList, AccessToken}))), _Table = Source{0}[Table], Table = Table.TransformColumnTypes(_Table,{{"ClientCompanyId", Int64.Type}, {"ClientName", type text}, {"CreationDate", type datetime}, {"DefaultRefMaterialAccess", Int64.Type}, {"InProgressDate", type datetime}, {"OnlineUrl", type text}, {"ProjectId", Int64.Type}, {"ProjectType", type text}, {"ReceivedDate", type datetime}, {"Reference", type text}, {"ResourceId", Int64.Type}, {"SourceLocale", type text}, {"Status_", Int64.Type}}) in Table
API v2
Get persons labels
let /***************************** * Variables *****************************/ url = "http://www.wordbee-translator.com/api/auth/token", urlPersonLabels = "http://www.wordbee-translator.com/api/persons/labels", /***************************** * Functions *****************************/ GetJson = Web.Contents(url, [ Headers = [#"Accept"="application/json", #"Content-Type"="application/json;charset=UTF-8"], Content = Text.ToBinary("{'accountid': 'accountCode', 'key': 'XXXX-XXXX-XXXX-XXXX-XXXXXXXX'}") ]), /***************************** * Results *****************************/ FormatAsJson = Json.Document(GetJson), AccessToken = FormatAsJson, Source = Json.Document(Web.Contents(urlPersonLabels, [Headers=[#"Accept"="application/json", #"Content-Type"="application/json;charset=UTF-8", #"X-Auth-AccountId"="accountCode", #"X-Auth-Token"= AccessToken ]])) in Source
Get Label and expands options for multiple lines
let /***************************** * Variables *****************************/ url = "http://www.wordbee-translator.com/api/auth/token", urlPersonLabels = "http://www.wordbee-translator.com/api/persons/labels", /***************************** * Functions *****************************/ GetJson = Web.Contents(url, [Headers = [#"Accept"="application/json", #"Content-Type"="application/json;charset=UTF-8"], Content = Text.ToBinary("{'accountid': 'accountCode', 'key': 'XXXX-XXX-XXXX-XXX-XXXXXXXX'}") ]), FormatAsJson = Json.Document(GetJson), AccessToken = FormatAsJson, /***************************** * Results *****************************/ Source = Json.Document(Web.Contents(urlPersonLabels, [Headers=[ #"Accept"="application/json", #"Content-Type"="application/json;charset=UTF-8", #"X-Auth-AccountId"="accountCode", #"X-Auth-Token"= AccessToken ]])), labels = Source[labels], #"Converti en table" = Table.FromList(labels, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Column1 développé" = Table.ExpandRecordColumn(#"Converti en table", "Column1", {"id", "name", "isSticky", "isStickyInLists", "options"}, {"Column1.id", "Column1.name", "Column1.isSticky", "Column1.isStickyInLists", "Column1.options"}), #"Column1.options développé" = Table.ExpandListColumn(#"Column1 développé", "Column1.options"), #"Column1.options développé1" = Table.ExpandRecordColumn(#"Column1.options développé", "Column1.options", {"name", "value", "htmlColor"}, {"Column1.options.name", "Column1.options.value", "Column1.options.htmlColor"}) in #"Column1.options développé1"
Get all jobs with pagiation
let /***************************** * Variables *****************************/ url = "https://www.wordbee-translator.com/api/auth/token", urlJobsList = "https://www.wordbee-translator.com/api/jobs/list", maxItems = 200, apiKey = "XXXX-XXXX-XXXX-XXXX-XXXX", accountid = "XXXX", /***************************** * Functions *****************************/ GetToken = Web.Contents(url, [Headers = [ #"Accept"="application/json", #"Content-Type"="application/json;charset=UTF-8"], Content = Text.ToBinary("{'accountid': '" & accountid &"', 'key': '" & apiKey & "'}")]), AccessToken = Json.Document(GetToken), GetBody = (page, take) => "{'query': '{created}.Matches(""-2m"", "">="")', 'take': '" & Text.From(take) & "','skip': '" & Text.From(page * take) & "'}", GetPartial = (page, take) => let body = GetBody(page, take), Value = Json.Document(Web.Contents(urlJobsList, [ Headers=[ #"Accept"="application/json", #"Content-Type"="application/json;charset=UTF-8", #"X-Auth-AccountId"= accountid, #"X-Auth-Token"= AccessToken ], Content = Text.ToBinary(body) ])) in Value, GetRange = (page) => GetPartial(page, maxItems), /***************************** * Results *****************************/ Total = GetPartial(0, 0)[total], PageCount = Number.RoundUp(Total / maxItems), PageIndices = { 0 .. PageCount - 1 }, Pages = List.Transform(PageIndices, each GetRange(_)[rows]), Entities = List.Union(Pages), Source = Table.FromList(Entities, Splitter.SplitByNothing(), null, null, ExtraValues.Error) in Source
, multiple selections available,
Related content
Connect using PUT
Connect using PUT
More like this
API Documentation
API Documentation
More like this
Authentication
Authentication
More like this
Connecting
Connecting
More like this
Copyright Wordbee - Buzzin' Outside the Box since 2008