Como posso acessar uma API Foundry de Repositórios de código?
Qual é a maneira correta de acessar uma API Foundry interna de um Repositório de código usando, por exemplo, uma transformação Python?
Respostas
Esta função não está disponível por padrão em todos os Repositórios de Código e você deve pedir ao administrador da plataforma para habilitá-la com base no Repositório.
Depois que o Repositório estiver na lista de permissões, você pode usar a biblioteca de solicitações python em seu Repositório de código para construir a chamada de API e obter o token de usuário do transform_context. Aqui está um snippet de código como exemplo:
from transforms.api import transform_df, Output
import requests
@transform_df(
Output("/your/output/table"),
)
def my_compute_function(ctx):
# Construct the URL for the GET request
url = "https://fourndy_url.com/service_url/api/..."
# Authentication
bearer_token = ctx.auth_header
header = {'Authorization': bearer_token, 'Content-Type': 'application/json'}
# Get the response
response = requests.get(url, headers=header).json()
Para expandir a postagem de @icharbon acima - eu recomendo definir a timeoutpropriedade em requestschamadas python . Sem isso, uma solicitação HTTP suspensa pode fazer com que seu trabalho pyspark trave.
from transforms.api import transform_df, Output
import requests
@transform_df(
Output("/your/output/table"),
)
def my_compute_function(ctx):
# Construct the URL for the GET request
url = "https://fourndy_url.com/service_url/api/..."
# Authentication
bearer_token = ctx.auth_header
header = {'Authorization': bearer_token, 'Content-Type': 'application/json'}
# Get the response
response = requests.get(url, headers=header, timeout=10.0).json()
Você pode ler mais sobre o parâmetro de tempo limite e outros parâmetros opcionais aqui .