Skip To Content

Criando script com ArcGIS REST API

O Portal for ArcGIS pode ser puramente administrado por pedidos no ArcGIS REST API. Mesmo quando você utiliza o site da web do Portal for ArcGIS para administrar seu portal, os pedidos na API são feitos em tempo real. Para escrever scripts que administram o Portal for ArcGIS, você precisa escolher uma linguagem de script que permite a você utilizar URLs, criar pedidos de HTTP e analisar respostas do HTTP. Os exemplos neste sistema de ajuda utilizam Python.

É importante notar que utilizar o API não exige qualquer software da Esri na máquina da qual você executa o script. Tudo que você precisa é um ambiente onde você possa fazer pedidos de HTTP para seu portal.

Iniciando com administração do portal utilizando ArcGIS REST API

Para utilizar o ArcGIS REST API, você cria um pedido de HTTP para a operação que você deseja executar e incluir os parâmetros exigidos para esta operação. Uma maneira simples para se familiarizar com as operações administrativas disponíveis e seus parâmetros exigidos é utilizar o ArcGIS Portal Directory.

Utilizando o ArcGIS Portal Directory

O ArcGIS Portal Directory fica disponível por dois aplicativos da web e pode ajudá-lo a entender como gravar scripts administrativos para seu portal. O ArcGIS Portal Directory é conceitualmente semelhante ao ArcGIS Server Administrator Directory e Services Directory. As tarefas disponíveis variam entre os aplicativos, como descrito em Sobre o ArcGIS Portal Directory. As URLs para os aplicativos são formatadas como segue:

  • https://webadaptorhost.domain.com/webadaptorname/portaladmin
  • https://webadaptorhost.domain.com/webadaptorname/sharing/rest

Pense no ArcGIS Portal Directory como uma lista de recursos do Portal for ArcGIS exposta pelo REST API. Você pode navegar pelos links no ArcGIS Portal Directory para informações sobre quais URLs e parâmetros utilizar em seus pedidos de serviço da web administrativos. Você pode então formular estes pedidos e enviá-los pelo HTTP utilizando uma linguagem de script de sua escolha.

Tente utilizar o ArcGIS Portal Directory para executar uma tarefa administrativa. Observe os parâmetros que você é solicitado para inserir e examine a URL na barra de endereço do seu navegador conforme criar o pedido no servidor. As ferramentas de desenvolvedor da web como Fiddler ou Firebug podem ser úteis para visualizar o corpo completo do pedido e resposta. Estas informações são extremamente valiosas quando você está tentando construir seus próprios pedidos de HTTP administrativo por Python ou outra linguagem de script.

Embora você possa utilizar o ArcGIS Portal Directory interativamente para executar realmente tarefas administrativas, ele é melhor utilizado como uma ferramenta de aprendizado para ajudá-lo a se familiarizar com o REST API. O aplicativo da web pretendido para administração do portal é o site da web do Portal for ArcGIS.

Iniciando e utilizando um token em scripts

Sempre que você entra no portal pelo site da web ou ArcGIS Portal Directory, você precisa fornecer o nome de usuário e senha de uma conta que tem os privilégios apropriados para o portal. O mesmo conceito se aplica quando você escrever scripts.

No entanto, ao contrário de acessar o site do portal ou ArcGIS Portal Directory onde seu navegador irá lidar de forma transparente com o processo de autenticação, você deve entender como a autenticação ocorre ao usar scripts para administrar seu portal.

Se o seu portal estiver configurado para utilizar contas embutidas e autenticação de token, você poderá utilizar seus scripts com as mesmas contas administrativas e URLs que você utilizaria do ArcGIS Portal Directory. Se o seu portal estiver configurado com logins específicos da organzação e autenticação em série da web, é recomendado que você tenha a passagem dos scripts no Web Adaptor e utilize a conta inicial de administrador criada após a instalação do Portal for ArcGIS.

Nestes casos, o portal retorna a você um token, que é uma string de caracteres especial que comunica ao portal que você foi autenticado para executar determinados tipos de ações. Você deve incluir este token em quaisquer pedidos de serviço da web que você faz no portal.

A seguinte função Python exige um token. A URL do portal, nome de usuário e senha são fornecidos como parâmetros.

def generateToken(username, password, portalUrl):
    '''Retrieves a token to be used with API requests.'''
    parameters = urllib.urlencode({'username' : username,
                                   'password' : password,
                                   'client' : 'referer',
                                   'referer': portalUrl,
                                   'expiration': 60,
                                   'f' : 'json'})
    response = urllib.urlopen(portalUrl + '/sharing/rest/generateToken?',
                              parameters).read()
    try:
        jsonResponse = json.loads(response)
        if 'token' in jsonResponse:
            return jsonResponse['token']
        elif 'error' in jsonResponse:
            print jsonResponse['error']['message']
            for detail in jsonResponse['error']['details']:
                print detail
    except ValueError, e:
        print 'An unspecified error occurred.'
        print e

O token não dura para sempre; ele é projetado para expirar de forma que não possa ser roubado e utilizado indefinidamente por um usuário malicioso. Você tem que solicitar um novo token todo vez que executar seu script (mas não toda vez que fizer um pedido). Em alguns casos excepcionais, os tokens podem expirar antes de finalizar a execução do seu script. Se o seu pedido incluir um token expirado, a resposta do servidor incluirá um erro indicando que seu token expirou. Se isto acontecer, atualize seu token e continue a execução do seu script.

Trabalhando com pedidos e respostas

Para fazer um pedido de serviço da web, você precisa formular a URL para a ação que você deseja tomar, como também, os parâmetros exigidos para esta ação. Um dos parâmetros exigidos em um portal protegido é um token como este gerado acima.

Todas as ações administrativas produzem uma resposta do serviço da web, que você normalmente solicitará no formato JavaScript Object Notation (JSON). As linguagens de script como Python têm bibliotecas que podem analisar ou ler uma resposta de JSON. Às vezes você deseja obter somente o código de status do HTTP para descobrir se o seu pedido teve sucesso (por exemplo, um código de 200 significa OK). Outras vezes, a resposta pode ter dados, como mensagens de log, que você também deseja analisar e examinar.

Veja os vários exemplos de código neste livro de ajuda para entender como você pode enviar por programação um pedido ao Portal for ArcGIS e trabalhar com uma resposta.