ArcGIS REST API 요청만을 통해 Portal for ArcGIS를 관리할 수 있습니다. Portal for ArcGIS 웹 사이트를 사용하여 포털을 관리하는 경우에도 백 엔드에서는 API에 대한 호출이 수행됩니다. Portal for ArcGIS를 관리하는 스크립트를 작성하려면 URL을 생성하고, HTTP 요청을 만들고, HTTP 응답을 구문 분석할 수 있게 해주는 스크립팅 언어를 선택해야 합니다. 이 도움말 시스템의 예시에서는 Python을 사용합니다.
API를 사용하기 위해 스크립트를 실행하는 머신에 Esri 소프트웨어를 설치할 필요는 없습니다. 필요한 것은 포털에 대한 HTTP 요청을 만들 수 있는 환경뿐입니다.
ArcGIS REST API를 사용하여 포털 관리 시작하기
ArcGIS REST API를 사용하려면 수행할 작업에 대한 HTTP 요청을 생성하고 해당 작업의 필수 매개변수를 포함시킵니다. 사용 가능한 관리 작업과 해당 필수 매개변수에 익숙해지는 간단한 방법은 ArcGIS Portal Directory를 사용하는 것입니다.
ArcGIS Portal Directory 사용
ArcGIS Portal Directory는 두 개의 웹 응용프로그램을 통해 사용할 수 있으며, 포털에 대한 관리 스크립트를 작성하는 방법을 이해하는 데 유용합니다. ArcGIS Portal Directory는 개념적으로 ArcGIS Server Administrator Directory 및 Services Directory와 유사합니다. ArcGIS Portal Directory에 설명된 대로 사용 가능한 작업은 응용프로그램에 따라 다릅니다. 응용프로그램 URL의 형식은 다음과 같습니다.
- https://webadaptorhost.domain.com/webadaptorname/portaladmin
- https://webadaptorhost.domain.com/webadaptorname/sharing/rest
ArcGIS Portal Directory를 REST API를 통해 노출되는 Portal for ArcGIS 리소스 목록으로 간주하면 됩니다. ArcGIS Portal Directory에서 링크를 탐색하여 관리 웹 서비스 요청에 사용할 URL과 매개변수를 알아볼 수 있습니다. 그런 다음 이러한 요청을 공식화하고 선택한 스크립팅 언어를 사용하여 HTTP를 통해 해당 요청을 보낼 수 있습니다.
ArcGIS Portal Directory를 사용하여 관리 작업을 수행해 보세요. 입력해야 하는 매개변수에 주의하고, 서버에 대한 요청을 만들 때 브라우저의 주소 표시줄에서 URL을 확인하세요. 요청과 응답의 전체 본문을 볼 때 Fiddler 또는 Firebug와 같은 웹 개발자 도구가 유용할 수 있습니다. Python 또는 다른 스크립팅 언어를 통해 고유한 관리 HTTP 요청을 생성하려고 할 때 이 정보는 특히 중요합니다.
ArcGIS Portal Directory를 대화형으로 사용하여 실제로 관리 작업을 수행할 수는 있지만 REST API에 익숙해지기 위한 학습 도구로 사용하는 것이 가장 좋습니다. 포털 관리용으로 설계된 웹 응용프로그램은 Portal for ArcGIS 웹 사이트입니다.
스크립트에 토큰 가져오기 및 사용
웹 사이트나 ArcGIS Portal Directory를 통해 포털을 관리할 때마다 포털에 대한 적합한 권한을 가진 계정의 사용자 이름과 비밀번호를 제공해야 합니다. 동일한 개념이 스크립트를 작성할 때도 적용됩니다.
그러나 브라우저가 인증 프로세스를 투명하게 처리하는 포털 웹 사이트나 ArcGIS Portal Directory에 접근하는 것과는 다르게, 스크립트를 사용하여 포털을 관리할 때는 인증이 발생하는 방식을 이해해야 합니다.
빌트인 계정과 토큰 인증을 사용하도록 포털이 구성된 경우 ArcGIS Portal Directory에서 사용한 것과 동일한 관리 계정 및 URL로 스크립트를 사용할 수 있습니다. 엔터프라이즈 로그인과 웹 티어 인증을 사용하도록 포털이 구성된 경우 스크립트에서 Web Adaptor를 우회하도록 하고 Portal for ArcGIS 설치 후 생성된 초기 관리자 계정을 사용하는 것이 좋습니다.
어떤 경우든, 포털은 사용자에게 토큰을 반환합니다. 토큰은 사용자가 특정 유형의 작업을 수행하도록 인증된 포털과 통신하는, 문자로 구성된 특수 문자열입니다. 포털에 대해 만드는 모든 웹 서비스 요청에 이 토큰을 포함시켜야 합니다.
다음 Python 함수에서는 토큰을 요청합니다. 포털의 URL, 사용자 이름, 비밀번호는 인수로 제공됩니다.
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
토큰은 영원히 지속되지 않습니다. 즉, 토큰은 악의적인 사용자가 훔쳐서 무기한으로 사용할 수 없도록 사용 기간이 만료되도록 설계되어 있습니다. 일반적으로 스크립트를 실행할 때마다 새 토큰을 요청해야 합니다(단. 요청할 때마다는 아님). 일부 예외적인 경우 스크립트 실행이 끝나기 전에 토큰이 만료될 수 있습니다. 요청에 만료된 토큰이 포함된 경우 서버의 응답에 토큰이 만료되었음을 나타내는 오류가 포함됩니다. 이 경우 토큰을 새로 고치고 스크립트를 계속 실행합니다.
요청 및 응답 작업
웹 서비스 요청을 만들려면 수행할 작업의 URL과 해당 작업의 필수 매개변수를 공식화해야 합니다. 보안 포털의 필수 매개변수 중 하나는 앞에서 생성한 것과 같은 토큰입니다.
모든 관리 작업은 웹 서비스 응답을 생성합니다. 이 응답은 일반적으로 JSON(JavaScript Object Notation) 형식으로 요청합니다. Python과 같은 스크립팅 언어에는 JSON 응답을 분석하거나 읽을 수 있는 라이브러리가 포함되어 있습니다. 경우에 따라 요청의 성공 여부를 확인하기 위한 HTTP 상태 코드만 얻기를 원할 수도 있습니다(예: 코드 200은 정상을 의미함). 다른 경우에는 응답에 추가로 구문 분석을 수행하고 확인하기를 원하는 데이터(예: 로그 메시지)가 포함될 수 있습니다.
프로그래밍 방식으로 Portal for ArcGIS에 요청을 보내고 응답 작업을 수행할 수 있는 방법을 이해하려면 이 도움말 문서에 포함되어 있는 다양한 코드 예를 참고하세요.