Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
Syndicate_Admin
Administrator
Administrator

URL de API rota por Power Query

Estoy tratando de agregar una columna personalizada con la siguiente m:

= Table.AddColumn(#"Tipo cambiado", "Personalizado", cada Json.Document(Web.Contents("https://api.os.uk/search/names/v1/nearest?point=" & [Este] & "," & [Northing] & "&key=MI CLAVE", [ApiKeyName="prueba " ])))

Desafortunadamente, esto parece estar fallando, ya que la coma resaltada parece estar siendo reemplazada. El error siguiente indica:

DataSource.Error: Web.Contents no pudo obtener contenido de 'https://api.os.uk/search/names/v1/nearest?point=440200%2C449300&key=MY KEY'

¿Hay alguna forma de evitar que esto suceda? Gracias

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

Ahora estoy más confundido, ya que si simplemente busco en Google la URL como se muestra en el error, la página se carga sin problemas, aparentemente aceptando el cambio a

'https://api.os.uk/search/names/v1/nearest?point=440200%2C449300&radius=1000&key=MYKEY'

¿Por qué se produciría un error cuando se utiliza dentro de un paso Agregar columna? Error completo:

DataSource.Error: Web.Contents no pudo obtener contenido de 'https://api.os.uk/search/names/v1/nearest?point=440200%2C449300&radius=1000&key=MY KEY' (400): Solicitud incorrecta
Detalles:
DataSourceKind=Web
DataSourcePath=https://api.os.uk/search/names/v1/nearest
Url=https://api.os.uk/search/names/v1/nearest?point=440200%2C449300&radius=1000&key=MI CLAVE

Por favor, lea la documentación. A continuación, implemente RelativePath y Query. El punto, el radio y la clave deben ir a la parte de consulta.

Web.Contents - PowerQuery M | Microsoft Learn

¿Así?

= Table.AddColumn(#"Columna combinada insertada", "Personalizada", cada una
let x = [Este] & "," & [Norte] en
Json.Document(Web.Contents("https://api.os.uk/search/names/v1/", [RelativePath = "nearest?", Query = [point = x, radius = "1000", key = "MY KEY"], ApiKeyName="test"])))

Desafortunadamente, todavía me da un error de solicitud incorrecta.

= Table.AddColumn(#"Inserted Merged Column", "Custom", each
let x = [Easting] & "," & [Northing] in
Json.Document(Web.Contents("https://api.os.uk/search/names/v1/", [RelativePath = "nearest", Query = [point = x, radius = 1000, key = "MY KEY"]])))

Pruebe esto

Todavía no tuve suerte, desafortunadamente, el error inicial me dio:

Expression.Error: No podemos convertir el valor 1000 en texto de tipo.

Luego agregué algo de "" alrededor de los 1000, momento en el que se me pidió que ingresara credenciales, fui a 'API web', ingresé mi clave y me encontré;
Una clave de API web solo se puede especificar cuando se proporciona un nombre de clave de API web.

así que agregué , ApiKeyName="test"] dejándome con:

= Table.AddColumn(#"Columna combinada insertada", "Custom2", cada una
let x = [Este] & "," & [Norte] en
Json.Document(Web.Contents("https://api.os.uk/search/names/v1/", [RelativePath = "nearest", Query = [point = x, radius = "1000", key = "MY KEY"], ApiKeyName="test"])))

Desafortunadamente, esto terminó en otro error de solicitud incorrecta:

DataSource.Error: Web.Contents no pudo obtener contenido de 'https://api.os.uk/search/names/v1/nearest?point=440200%2C449300&radius=1000&key=MY KEY' (400): Solicitud incorrecta
Detalles:
DataSourceKind=Web
DataSourcePath=https://api.os.uk/search/names/v1/nearest
url=https://api.os.uk/search/names/v1/nearest?point=440200%2C449300&radius=1000&key=MI CLAVE

No estoy seguro de si la coma es el verdadero problema, ya que pegar la URL de este error en Chrome funciona sin problemas, solo parece fallar cuando proviene de Power Query

Pruebe con APIKeyName="key"

¡Eso es todo! Muchas gracias por perseverar conmigo en esto.

Syndicate_Admin
Administrator
Administrator

Por favor, lea la documentación. A continuación, implemente RelativePath y Query.

Web.Contents - PowerQuery M | Microsoft Learn

Gracias por la respuesta, he actualizado las cosas pero sigo enfrentándome a un error. He probado lo siguiente:

= Table.AddColumn(#"Columnas reordenadas", "Personalizadas", cada una

let x = [Este] & "," & [Norte] & "&key=MI CLAVE" en
Json.Document(Web.Contents("https://api.os.uk/search/names/v1/", [RelativePath = "nearest?point=", Query = [x], ApiKeyName="test"])))

esto me da el error: Expression.Error: No se encontró el campo 'x' del registro.

si elimino los corchetes alrededor de la x para que se lea Consulta = x, se me pide que ingrese las credenciales, sin embargo, no se autenticarán.

sin embargo, se me pide que ingrese las credenciales y, al ingresar mi clave, no autenticará mis credenciales. Siento que debo estar entendiendo mal el campo 'Consulta'.

Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.