SoftLayer API 개요

SoftLayer API(Application Programming Interface)는 개발자와 시스템 관리자가 SoftLayer 백엔드 시스템과 직접 상호작용하는 개발 인터페이스입니다. SoftLayer API에 표시되는 기능을 통해 원격 서버 관리, 모니터링을 수행하고 회계, 인벤토리, DNS와 같은 SoftLayer의 다양한 시스템에서 정보를 검색할 수 있습니다. 당사의 API는 SoftLayer 고객 포털에 있는 기능의 대부분을 지원하므로, 고객 포털에서 사용 가능한 기능이라면 대개 SoftLayer API에서도 실행할 수 있습니다.

API를 사용해야 하는 사람?

SoftLayer API(SLAPI)는 모든 SoftLayer 고객에게 무료로 제공됩니다. 오브젝트 지향 프로그래밍에 대한 기본 지식이 있는 SoftLayer 고객은 SLAPI에서 제공하는 기능을 적극 활용하시기를 권장합니다. 다양한 태스크에 SLAPI를 사용하는 SoftLayer 고객은 API 내에서 SoftLayer 환경의 모든 부분과 프로그래밍 방식으로 상호작용할 수 있으므로 SLAPI 사용 고객의 대다수가 태스크를 자동화할 수 있게 됩니다.

SoftLayer API 사용

시작 전 주의 사항

SLAPI는 사용자가 고객 포털을 실행하는 오브젝트와 직접 상호작용할 수 있게 해 줍니다. SLAPI를 사용하여 개발하기 전에 오브젝트, 특성, 메소드, 상속과 같은 오브젝트 지향 프로그래밍의 기본 개념을 이해하면 매우 도움이 됩니다. SLAPI의 메소드는 백엔드 시스템에서 서비스 오브젝트를 대상으로 실행되어, SoftLayer 고유 데이터 유형 오브젝트 및 정수, 부울, 문자열과 같은 표준 데이터 유형을 리턴합니다.
SLAPI는 원격 프로시저 호출(RPC) 시스템입니다. 각 호출에는 API 엔드포인트로 데이터를 송신하고 구조화된 데이터를 수신하는 과정이 포함됩니다. SLAPI를 통해 데이터를 송수신할 때 사용되는 형식은 사용자가 선택한 API 구현에 따라 다릅니다. 현재 SLAPI에서는 데이터 전송에 SOAP, XML-RPC 또는 REST가 사용됩니다. API 호출을 작성하기 전에 프로그래밍 언어나 스크립팅 언어에서 이 프로토콜의 사용 방법을 숙지하면 도움이 됩니다. 애플리케이션에 아무 구현을 사용할 수 있습니다. 또한 당사는 GitHub 프로파일에서 지원되는 다양한 언어로 여러 가지 서비스 고유 API 클라이언트를 제공해 오고 있습니다.

API 사용자 작성

SLAPI를 호출할 때마다 고객 포털 계정을 통한 인증 과정을 거칩니다. 고객 포털의 계정은 여러 명의 사용자를 포함할 수 있으므로 고유한 고객 포털 사용자를 작성하여 API 호출을 실행할 것을 적극 권장합니다. 애플리케이션을 개발하든 다른 사람이 개발한 API 기반 애플리케이션을 사용하든 프로그램 안에서 반드시 인증을 거쳐야 계정과 관련된 여러 가지 정보를 액세스하고 상호작용할 수 있게 됩니다. SLAPI 인증을 받으려면 고객 포털 사용자 이름과 API 메소드 호출용으로 예약된 특별 인증 토큰인 API 키가 필요합니다. 고객 포털에 정의되어 있는 사용자 권한이 API 호출에 반영됩니다.

퍼블릭 네트워크 또는 프라이빗 네트워크 선택

SLAPI 엔드포인트 서버는 SoftLayer의 퍼블릭 네트워크와 프라이빗 네트워크에 있습니다. 인터넷 상의 임의 호스트에서 API 기반 애플리케이션에 연결할 수 있지만, SoftLayer의 프라이빗 네트워크는 데이터 보안을 위한 추가 계층을 제공합니다. 또한 SoftLayer는 프라이빗 네트워크에 연결되어 있을 때에만 액세스 가능한 다양한 프라이빗 네트워크 API 엔드포인트를 제공합니다. SoftLayer 계정과 연결된 모든 서버와 컴퓨팅 인스턴스에서는 프라이빗 네트워크에 직접 연결할 수 있고 추가 인증 과정을 거칠 필요가 없습니다. 다른 디바이스에서 프라이빗 엔드포인트를 사용하려는 경우, 당사 프라이빗 네트워크에 대한 VPN 연결이 설정되어 있어야 합니다.

기본 API 개념

서비스

서비스는 내부 SoftLayer 시스템에 연결되어 있는 엔드포인트입니다. 각 서비스는 실행 가능한 메소드 또는 작업의 콜렉션으로, 전체 SLAPI 서비스 목록을 이 사이트의 참조 섹션에서 확인할 수 있습니다.
원하는 API의 서비스 섹션에 액세스하면 사용 가능한 전체 서비스 목록이 화면 왼쪽에 표시됩니다. 모든 SoftLayer 서비스는 "SoftLayer_"로 시작하고, "하드웨어", "계정", "비용 청구", "네트워크" 등 서비스에서 제공되는 일반 기능을 정의하는 용어가 덧붙여 있습니다. 여기에서부터 해당 특정 서브세트의 구체적인 서비스 기능을 정의하는 이름을 바탕으로 각 서비스가 확장됩니다. SoftLayer API에 연결된 서비스는 저마다 고유한 이름을 갖습니다. SoftLayer_Account, SoftLayer_Account_Address와 같은 일부 서비스는 접두부가 같을 수 있지만 그렇다고 기능과 사용 방식까지 비슷한 것은 아니며, 비슷한 이름의 서비스에 직접적인 상속 관계가 있지도 않습니다. 이런 특성 때문에 각 서비스는 개벌적으로 접근해야 합니다.
특정 서비스의 세부사항을 보려면 서비스 이름을 클릭합니다. 각 서비스 페이지에 해당 서비스에 사용 가능한 메소드 목록이 나와 있고, 서비스를 설명하는 간단한 개요가 있는 경우도 많습니다. 서비스마다 고유한 메소드 세트를 제공하지만 대부분 서비스에서 getObject 메소드를 지원합니다. 이들 메소드는 API에서 동일한 유형의 오브젝트를 검색하는 데 사용합니다. 예를 들어, SoftLayer_Network_Subnet 서비스에서 getObject 메소드를 호출하면 SoftLayer_Network_Subnet 데이터 유형 오브젝트가 리턴됩니다.

메소드

메소드는 SLAPI 서비스에 수행할 수 있는 특정 조치입니다. 각 메소드는 스칼라 또는 구조화된 데이터 유형을 리턴하고, 실행하기 위해 특정 매개변수, 권한 또는 헤더를 요구할 수 있습니다. 메소드 매개변수는 각 언어 문서나 엔드포인트 문서에 설명된 기술을 사용하여 전달되어야 합니다. 여러 개의 매개변수가 필요한 상황에서는 메소드 페이지에 나와 있는 순서대로 위에서 아래로 매개변수를 전달하십시오. 아래의 스크린샷은 SoftLayer_Monitoring_Agent::getGraph 메소드의 필수 매개변수를 보여줍니다. 이 메소드를 실행할 때는 configurationValues, beginDate, endDate의 순서로 매개변수를 전달하십시오.
NOT FOUND: parameters.png
전체 매개변수, 권한, 헤더 목록을 각 메소드 페이지에서 확인할 수 있습니다.

데이터 유형

데이터 유형은 스칼라 값 및 그 외 데이터 유형 콜렉션을 포함하는 구조입니다. 문자열, 부울, int 같은 종래의 스칼라 값 외에, SLAPI는 메소드를 통해 전달, 리턴되는 오브젝트를 정의하는 특성을 포함한 복합 데이터 유형을 사용합니다. 각 데이터 유형은 많은 로컬, 관계형, 카운트 특성을 포함할 수 있습니다.

로컬 특성

로컬 특성은 데이터 유형의 직접적 하위 항목입니다. getObject()를 호출할 때 주로 로컬 특성이 리턴됩니다. 전부는 아니더라도 일부 로컬 특성은 createObject() 호출 시 이 데이터 유형의 인스턴스를 작성할 때 필수입니다.

관계형 특성

관계형 특성은 데이터 유형의 간접적 하위 항목입니다. 다른 데이터 유형이나 특성에 관계형 특성이 정의됩니다. 예를 들어, SoftLayer_Account 데이터 유형은 하드웨어의 관계형 특성을 갖습니다. 이 관계형 특성은 SoftLayer_Hardware 데이터 유형 모음입니다. 오브젝트 마스크와 함께 사용하는 경우, 이 특성은 계정의 각 하드웨어 디바이스에 대한 SoftLayer_Hardware 오브젝트를 포함한 어레이를 리턴합니다.

카운트 특성

카운트 특성은 특성에 연결된 오브젝트의 총 수를 판별하는 데 사용하는 편리한 특성입니다. Softlayer_Hardware_Server->networkVlanCount가 포함된 오브젝트 마스크를 사용하여 특정 서버에 연결된 VLAN의 총 수를 검색할 수 있습니다.

고급 API 개념

일반적인 작성, 읽기, 업데이트, 삭제 조작 외에도 SLAPI는 개발자가 특별 API 호출 헤더를 사용하여 각 호출에서 데이터 리턴 방식을 정의할 수 있도록 지원합니다. 이 헤더를 통해 API에서 리턴되는 데이터의 양을 높은 수준으로 제어할 수 있습니다.

결과 제한

결과 제한은 오프셋과 리턴되는 오브젝트의 양을 정의하는 지원 메소드입니다. 대량의 데이터 세트를 페이지로 나눌 수 있습니다.

오브젝트 마스크

오브젝트 마스크는 메소드에서 리턴되는 로컬 특성을 지정하고 관계형 특성과 카운트 특성에서 찾은 정보를 검색할 수 있도록 지원합니다. 리턴값에 포함할 특정 데이터를 정의하기 위해 맵 또는 마스크를 작성합니다. 예를 들어, SoftLayer_Hardware_Server::getObject를 호출할 때 ìnetworkVlans.idî에 대한 오브젝트 마스크를 지정하여 SoftLayer_Hardware_Server에서 각 VLAN의 ID를 수집할 수 있습니다.

SLAPI를 마스터하는 방법 중 하나는 오브젝트 마스크를 자세히 알아보고 원하는 결과를 얻는 것입니다. 대개 특정 데이터 요소에 이르는 방법은 한 가지 이상이며 특정 방법이 다른 방법보다 더 효율적일 수 있습니다.

다음에 참고할 자료

기본 정보를 학습했으므로 코딩을 시작할 시간입니다. 시작 안내서에서 API 사용자를 작성하고 처음으로 호출하는 방법을 확인하십시오. SoftLayer는 언어별로 다양한 안내서를 제공하고 있습니다.

기타 유용한 링크: