Ir para conteúdo
  • 0

Função Personalizada para Pesquisa em API


Ciro

Pergunta

  • Alunos

Olá!!!

Sem muita experiência em linguagem M, estou tentando criar uma função personalizada para fazer pesquisas numa base através de uma API.

Como são vários itens a serem pesquisados, optei pela utilização de função personalizada e meu código ficou assim:

let
    Source = #"API Sports",
    #"Expanded Value" = Table.ExpandRecordColumn(Source, "Value", {"fixture"}, {"Value.fixture"}),
    #"Expanded Value.fixture" = Table.ExpandRecordColumn(#"Expanded Value", "Value.fixture", {"id"}, {"Value.fixture.id"}),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded Value.fixture",{{"Value.fixture.id", "FixtureID"}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"FixtureID", type text}}),
    
    #"Invoked Custom Function" = Table.AddColumn(#"Changed Type", "fxStatistics", each fxStatistics([FixtureID]))
in
    #"Invoked Custom Function"

 

A função personalizada possui o seguinte código

let
    Source = (FixtureID as text) => let
        url = "https://v3.football.api-sports.io",
        relativePath = "fixtures/statistics",
    
        request = Web.Contents(
            url, 
            [
                RelativePath = relativePath, 
                Query = [fixture= FixtureID ],
                Headers = [ #"x-apisports-key" = "66fa5192ea29b6e667661468f424eb01" ]
            ]
        ),
        response = Json.Document(request)
    in
        response
in
    Source

 

Quando acrescento a coluna personalizada à tabela, aparece a seguinte mensagem:

"Formula.Firewall: Query 'Lista de Partidas' (step 'Invoked Custom Function') references other queries or steps, so it may not directly access a data source. Please rebuild this data combination."

Alguma sugestão sobre resolver esse problema ?

Desde já, muito grato pela atenção.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
14 horas atrás, Ciro disse:

Olá!!!

Sem muita experiência em linguagem M, estou tentando criar uma função personalizada para fazer pesquisas numa base através de uma API.

Como são vários itens a serem pesquisados, optei pela utilização de função personalizada e meu código ficou assim:

let
    Source = #"API Sports",
    #"Expanded Value" = Table.ExpandRecordColumn(Source, "Value", {"fixture"}, {"Value.fixture"}),
    #"Expanded Value.fixture" = Table.ExpandRecordColumn(#"Expanded Value", "Value.fixture", {"id"}, {"Value.fixture.id"}),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded Value.fixture",{{"Value.fixture.id", "FixtureID"}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"FixtureID", type text}}),
    
    #"Invoked Custom Function" = Table.AddColumn(#"Changed Type", "fxStatistics", each fxStatistics([FixtureID]))
in
    #"Invoked Custom Function"

 

A função personalizada possui o seguinte código

let
    Source = (FixtureID as text) => let
        url = "https://v3.football.api-sports.io",
        relativePath = "fixtures/statistics",
    
        request = Web.Contents(
            url, 
            [
                RelativePath = relativePath, 
                Query = [fixture= FixtureID ],
                Headers = [ #"x-apisports-key" = "66fa5192ea29b6e667661468f424eb01" ]
            ]
        ),
        response = Json.Document(request)
    in
        response
in
    Source

 

Quando acrescento a coluna personalizada à tabela, aparece a seguinte mensagem:

"Formula.Firewall: Query 'Lista de Partidas' (step 'Invoked Custom Function') references other queries or steps, so it may not directly access a data source. Please rebuild this data combination."

Alguma sugestão sobre resolver esse problema ?

Desde já, muito grato pela atenção.

Pode fornecer mais informações sobre API?

Documentação e exemplos de FixtureID's que você quer buscar 😄

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...