Resta el uso de la api con Java

Un usuario Pregunto ✅

iperezal

¿Hay algún ejemplo de código sobre cómo usar Rest api desde Java?

En respuesta a iperezal

@iperezal

Consulte este repositorio de Github satalyst / powerbi-rest-java.

El fragmento de código

public class Office365Authenticator implements Authenticator {
    private static final String DEFAULT_AUTHORITY = "https://login.windows.net/common/oauth2/authorize";
    private static final String DEFAULT_POWER_BI_RESOURCE_ID = "https://analysis.windows.net/powerbi/api";
    private static final boolean DEFAULT_VALIDATE_AUTHORITY = false;
    private String authority = DEFAULT_AUTHORITY;
    private String powerBiResourceId = DEFAULT_POWER_BI_RESOURCE_ID;
    private boolean validateAuthority = DEFAULT_VALIDATE_AUTHORITY;
    private String nativeClientId;
    private String tenant;
    private String username;
    private String password;

    private ExecutorService executor;
    private ReadWriteLock tokenLock = new ReentrantReadWriteLock();
    private String cachedToken;

    private String _authenticate() throws AuthenticationFailureException {
        try {
            AuthenticationContext authenticationContext = new AuthenticationContext(
                    authority,
                    validateAuthority,
                    executor
            );

            String result = getAccessToken(
                    authenticationContext,
                    powerBiResourceId,
                    nativeClientId,
                    username + "@" + tenant,
                    password
            );

            if (StringUtils.isEmpty(result)) {
                throw new AuthenticationFailureException("Returned access token is null.");
            }

            return result;
        } catch (ExecutionException | InterruptedException | IOException e) {
            throw new AuthenticationFailureException(e);
        }
    }

    private String getAccessToken(AuthenticationContext authenticationContext, String resourceId, String clientId,
                                  String username, String password) throws ExecutionException, InterruptedException {
        return authenticationContext.acquireToken(
                resourceId,
                clientId,
                username,
                password,
                null
        ).get().getAccessToken();
    }
}

gopinath

Hola….

Cualquier cuerpo da el código java para crear un conjunto de datos usando power bi API … Avance en agradecimiento …

Saludos,

Gopinath M

@iperezal

Varios recursos en Internet.

Cliente Java RESTful con java.net.URL

Usando REST en Java

Consumir servicios REST desde aplicaciones Java

Podrías encontrar más ejemplos en Github.

iperezal

En respuesta a Eric_Zhang

Pero no hay ejemplos sobre PowerBI Rest API y su autenticación en Java. 😞

No puedo autenticarme desde Java. Solo puedo desde C # y necesito código Java

En respuesta a iperezal

@iperezal

Consulte este repositorio de Github satalyst / powerbi-rest-java.

El fragmento de código

public class Office365Authenticator implements Authenticator {
    private static final String DEFAULT_AUTHORITY = "https://login.windows.net/common/oauth2/authorize";
    private static final String DEFAULT_POWER_BI_RESOURCE_ID = "https://analysis.windows.net/powerbi/api";
    private static final boolean DEFAULT_VALIDATE_AUTHORITY = false;
    private String authority = DEFAULT_AUTHORITY;
    private String powerBiResourceId = DEFAULT_POWER_BI_RESOURCE_ID;
    private boolean validateAuthority = DEFAULT_VALIDATE_AUTHORITY;
    private String nativeClientId;
    private String tenant;
    private String username;
    private String password;

    private ExecutorService executor;
    private ReadWriteLock tokenLock = new ReentrantReadWriteLock();
    private String cachedToken;

    private String _authenticate() throws AuthenticationFailureException {
        try {
            AuthenticationContext authenticationContext = new AuthenticationContext(
                    authority,
                    validateAuthority,
                    executor
            );

            String result = getAccessToken(
                    authenticationContext,
                    powerBiResourceId,
                    nativeClientId,
                    username + "@" + tenant,
                    password
            );

            if (StringUtils.isEmpty(result)) {
                throw new AuthenticationFailureException("Returned access token is null.");
            }

            return result;
        } catch (ExecutionException | InterruptedException | IOException e) {
            throw new AuthenticationFailureException(e);
        }
    }

    private String getAccessToken(AuthenticationContext authenticationContext, String resourceId, String clientId,
                                  String username, String password) throws ExecutionException, InterruptedException {
        return authenticationContext.acquireToken(
                resourceId,
                clientId,
                username,
                password,
                null
        ).get().getAccessToken();
    }
}

d_u_a

En respuesta a Eric_Zhang

@Eric_Zhang
En este fragmento de código

autoridad, validateAuthority, ejecutor (authenticationContext)? – ¿Cómo debo completar estos valores? que significan

powerBiResourceId? – ¿Dónde está esta identificación, qué significa?
nativeClientId: estoy creando una aplicación web (no una aplicación nativa) y esta será ApplicationId en Azure.
nombre de usuario + «@» + inquilino – Lo sé
contraseña – lo sé

gopinath

En respuesta a Eric_Zhang

Hola,

Acabo de crear la API usando el código java anterior y no sé cómo verificar el proyecto maven mencionado anteriormente …

¿Puede proporcionar instrucciones paso a paso para verificar la API anterior? Es decir, crear un conjunto de datos, agregar un conjunto de datos …

Gracias,

Gopinath Madhavan

En respuesta a iperezal

Azure AD tiene una biblioteca de Java que puede usar: https://github.com/AzureAD/azure-activedirectory-library-for-java

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *