Python, APIs e REST

Está interessado em usar o ArcGIS API for Python para automatizar seu fluxo de trabalho do ArcGIS Online ou do ArcGIS Enterprise, mas está achando assustador o número de diferentes componentes e opções de software? O ArcGIS API for Python pode parecer impressionante em virtude da complexidade e do número de opções de instalação, além da possibilidade de diferentes ambientes Python. Ela também integra produtos de terceiros, como Anaconda e Jupyter Notebook, que podem ser novos para muitos.

No entanto, o ArcGIS API for Python pode ser muito útil e intuitiva, principalmente quando as práticas recomendadas são seguidas. Ela também pode simplificar seus scripts significativamente. Este é um exemplo de script para mover (redesignar) o conteúdo de um usuário para outro; ele não utiliza o ArcGIS API for Python. Esse processo envolve a criação de cadeias de texto para solicitações de URL, para todas as ações que você quiser realizar.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 1
Um script muito longo

Por outro lado, para realizar o mesmo fluxo de trabalho usando o ArcGIS for Python, tudo de que você precisa é:

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 2
Um script curto e mais fácil.

À medida que o ArcGIS API for Python cria solicitações de URL, você pode escrever ou compartilhar um script muito mais simples do que escreveria ou compartilharia sem ela. No exemplo acima, o uso do ArcGIS API for Python reduziu o número de linhas de código de 117 a 19 para realizar a mesma tarefa! Antes de começar a usar o ArcGIS for Python, é bom familiarizar-se com o que ela é e algumas práticas recomendadas. Este blog de duas partes explora todos os componentes e conceitos do uso da API Python, como eles estão relacionados entre si e as práticas recomendadas.

O que é o ArcGIS API for Python?

O ArcGIS API for Python pode ser definida como: “Uma API Python desenvolvida pela Esri para gerenciar o Web GIS por meio do ArcGIS REST API.”

Mas essa definição supõe que você conhece os seguintes conceitos:

  • Python.

  • API.

  • ArcGIS REST API.

  • Web GIS.

Como você está lendo este blog, suponho que já entenda o Web GIS. No entanto, para que todos estejam na mesma página, o Web GIS é um conceito que engloba qualquer sistema de gerenciamento de dados de GIS que use a Web para compartilhar, editar ou gerenciar os dados. Na Esri, usamos Web GIS para nos referir ao ArcGIS Online e ao ArcGIS Enterprise (principalmente, o Portal do ArcGIS). Agora, nós nos aprofundaremos nos outros conceitos e em como eles estão relacionados à forma como você gerencia seu Web GIS.

Entendendo a instalação do Python

Python é uma linguagem de programação de código-fonte aberto que a Esri, junto com muitas outras plataformas de software, utiliza para criar ferramentas de processamento. Uma instalação da Python acompanha um código principal (por exemplo, um arquivo python.exe e arquivos associados) e um pacote com ferramentas e funções adicionais. O usuário pode adicionar outros pacotes para expandir as funcionalidades.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 3
Instalação do Python para ArcGIS Desktop.

A instalação do Python que acompanha o ArcGIS Desktop inclui o pacote arcpy, que contém todas as ferramentas de geoprocessamento do ArcGIS. Outros pacotes comuns são o numpy, que tem funções matemáticas, e o urllib e o requests, que permitem que você crie e envie solicitações de URL por meio de seu script Python. Geralmente, o numpy é instalado por padrão com a Python, mas o usuário deverá instalar o urllib e o requests.

O ArcGIS Desktop acompanha uma instalação do Python, mas nem todas as instalações do ArcGIS Python são iguais. Entre o desenvolvimento do ArcMap e do ArcGIS Pro, o Python lançou várias versões novas.

Por causa disso, uma instalação do ArcMap acompanhará a Python 2.7, que dá suporte ao pacote arcpy.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 4
Instalação do ArcMap Python 2.7.

O ArcGIS Pro, por outro lado, foi desenvolvido usando a Python 3.5, e o pacote arcpy do ArcGIS Pro exige uma instalação da Python 3.5. Da mesma forma, o ArcGIS API for Python só pode ser instalada em um client que usa a Python 3.5. O pacote de Python do ArcGIS API for Python se chama arcgis.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 5
Instalação do ArcGIS Pro Python 3.5.

“Não entendi”, você pode estar pensando, “achei que o ArcGIS API for Python era uma API. Por que você está se referindo a ela como um pacote de Python?

Boa pergunta!

O ArcGIS API for Python é um pacote de Python e uma API.

Os pacotes de Python são pacotes de ferramentas que podem ser instalados em um ambiente Python, e essa é exatamente a finalidade do ArcGIS API for Python.

No entanto, o ArcGIS API for Python também é uma API. Isso nos leva à próxima pergunta: o que é uma API?


Fique por dentro de todas as novidades do Portal GEO. Faça grátis sua inscrição!

Veja também:

Leia a 2ª parte deste artigo!

Exagere nos seus mapas!

O surgimento de uma nuvem geoespacial

Geocodificação e roteamento mais precisos com o StreetMap Premium

10 ações essenciais para ser um líder de GIS


O que é uma API?

API significa “interface de programação de aplicativos” e é uma biblioteca de ferramentas que permite que dois aplicativos interajam entre si. Alguns exemplos são a API Javascript, API Silverlight e ArcGIS REST API.

Imagine que um colega seu queira uma bebida de uma máquina de venda automática. Em outras palavras, temos um aplicativo (um colega com sede) que gostaria de fazer uma solicitação (comprar um refrigerante) de um servidor (a máquina de venda automática). Para fazer isso, precisa existir uma interface que tanto o aplicativo quanto o servidor possam entender e com a qual eles possam interagir. Nesse caso, o teclado atua como a interface entre o aplicativo e o servidor.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 6
Um aplicativo fazendo uma solicitação ao servidor.

Um exemplo real de uma API é o ArcGIS REST API, que é um conjunto de ferramentas que permite que os aplicativos façam solicitações aos sites do Servidor ArcGIS. Como o nome indica, o ArcGIS REST API contém as ferramentas para permitir que os aplicativos façam solicitações REST aos sites RESTful do Servidor ArcGIS. Como o ArcGIS API for Python interage com o ArcGIS REST API, vamos explorar o que significa dizer que o site de um servidor é RESTful.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 7
A relação entre aplicativos, o ArcGIS REST API.

O que é REST?

Transferência de Estado Representacional, ou REST, é um estilo arquitetônico que, entre outras funções, organiza um site de uma forma que permita que as pessoas leiam as URLs. Os sites do Servidor ArcGIS usam o estilo arquitetônico REST para criar sites em que se possa navegar da mesma forma em que se navega em pastas de computador. Este é o diretório de serviços do site REST do servidor SampleServer6.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 8.
Endpoint REST do SampleServer6.

Se abrir a pasta Energy do diretório de serviços, o elemento “/energy” será adicionado na URL, assim como acontece no Windows Explorer (https://sampleserver6.arcgisonline.com/arcgis/rest/services/Energy). De lá, posso abrir o serviço Geology Feature, que será adicionado na URL como “Geology/FeatureServer”.

Se quiser trabalhar com um nível de serviço específico (por exemplo, o nível Falha), o número do nível (0) será adicionado: https://sampleserver6.arcgisonline.com/arcgis/rest/services/Energy/Geology/
FeatureServer/0
.

Assim que o URL estiver apontando para um serviço ou nível de serviço específico, as operações que você quiser realizar nesse serviço ou nível poderão ser anexadas ao final do URL. Por exemplo, se você quiser consultar um recurso específico pelo ObjectID no nível Falha (0) do serviço Geology, poderia adicionar a operação “query?” do ArcGIS REST API e todos os parâmetros da operação (por exemplo, “objectIds=41568”). Ao enviar a solicitação de URL, o SampleServer6 responderá à solicitação com informações sobre o recurso 41568 no primeiro nível do serviço Geology Feature. Agora, a solicitação de URL é semelhante a esta:

https://sampleserver6.arcgisonline.com/arcgis/rest/services/Energy/Geology/
FeatureServer/0/query?objectIds=41568

Em seguida, o ArcGIS REST API será uma lista de todas as operações que você (ou um aplicativo) pode realizar nos serviços nos sites do Servidor ArcGIS. Depois, essas operações serão aplicadas aos serviços usando a arquitetura REST da solicitação de URL.

O ArcGIS API for Python x o ArcGIS REST API

Se uma API é a interface entre dois aplicativos, e o ArcGIS REST API é a interface entre um aplicativo e os sites do Servidor ArcGIS, o ArcGIS API for Python seria uma interface entre quais elementos?

Existem duas formas de pensar nisso:

Você pode pensar no ArcGIS API for Python como a interface entre um script Python e o ArcGIS REST API. Em seguida, o ArcGIS REST API interage entre o ArcGIS API for Python e o site do Servidor ArcGIS.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 9
A API Python interage entre scripts Python e a REST API.

Como alternativa, você pode pensar no ArcGIS API for Python como um wrapper de Python ao redor do ArcGIS REST API, e ambas funcionam juntas como a interface entre o script e o site do Servidor ArcGIS.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 10
A API Python como um wrapper de Python da REST API.

O ArcGIS API for Python envolve a construção dos URLs do ArcGIS REST API em funções de Python, assim, em vez de ter que criar um URL manualmente em um script, você pode acionar as funções criadas previamente que construirão os URLs no back-end.

Principais conceitos do ArcGIS API for Python, parte 1: Python, APIs e REST - imagem 11
A mesma operação sem (acima) e com (abaixo) o ArcGIS API for Python.

O que é o ArcGIS API for Python?

Agora que exploramos a linguagem Python, os pacotes de Python, as APIs e o ArcGIS REST API, podemos analisar novamente a definição original e nos aprofundar um pouco mais nela para criar uma definição final:

O ArcGIS API for Python é uma API e um pacote de Python. Ela inclui ferramentas que ajudam um script Python a usar o ArcGIS REST API, que, por sua vez, inclui as ferramentas para fazer solicitações aos serviços do Servidor ArcGIS. Portanto, o ArcGIS API for Python ajuda você a escrever scripts Python para gerenciar o conteúdo e os usuários do seu Web GIS.

Quer saber mais? Clique aqui e leia a segunda parte deste artigo.


Você gostou desse artigo?

O Portal GEO está sempre trabalhando para trazer novidades, tendências e o que há de melhor em dicas do universo GIS. Clique abaixo e faça sua inscrição gratuita para receber com comodidade todos os nossos artigos, que tenho certeza, vão te apoiar em seu cotidiano profissional e pessoal, te deixando sempre bem informado: