REST 명령 실행

여러 다른 프로그램에서 REST 명령을 실행할 수 있습니다. 명령을 실행하려면 REST 자원에서 메소드를 호출하여 매개변수나 요청을 JSON 형식으로 전달합니다.
참고: REST 명령을 사용하려면 웹 인터페이스를 사용하는 경우와 동일한 권한이 필요합니다. 권한에 대한 정보는 역할 및 권한의 내용을 참조하십시오.

예: curl로 단순 REST 명령 실행

Linux 프로그램 curl을 사용하면 간단하게 REST 명령을 실행할 수 있습니다. REST 명령을 실행하려면 REST 자원 중 하나의 URL을 작성하여 사용할 메소드를 지정하고 매개변수를 추가하십시오. 예를 들어, 다음 curl 명령은 모든 활성 컴포넌트 목록을 검색합니다. 이 명령은 component 자원의 GET 메소드를 호출하여 active 매개변수의 true 값을 전달합니다.
curl -k -u admin:admin 
  https://hostname:port/cli/component?active=true 
  -X GET
참고: 이 명령은 한 행에 입력해야 합니다. 여기에서는 명료하게 표시하기 위해 여러 행으로 구분되어 있습니다.
참고: 이 예에서는 -k 스위치를 사용하여 보안이 설정되지 않은 상태로 서버에 연결합니다. 인증을 설정하려면 REST 명령 인증의 내용을 참조하십시오.
서버의 호스트 이름과 포트(hostnameport)를 사용하십시오. 예를 들어, 호스트 이름이 ucdeploy.example.org이고 포트의 기본값이 8443인 경우 curl 명령은 다음 예와 같을 수 있습니다.
curl -k -u admin:admin 
  https://ucdeploy.example.org:8443/cli/component?active=true 
  -X GET
이 명령의 응답은 서버에 있는 모든 활성 컴포넌트의 JSONArray 목록입니다. 이 응답의 예제는 Get information about all components on the server의 내용을 참조하십시오.

REST 명령에 매개변수 전달

여러 REST 명령에 하나 이상의 매개변수가 있습니다. 이러한 매개변수를 전달하려면 URL에 추가하십시오. 예를 들어, version/getLink 명령의 GET 메소드는 애플리케이션의 이름 또는 ID, 버전의 이름 또는 ID 및 링크 이름의 세 매개변수를 사용합니다. JPetStore-APP 컴포넌트에 대한 링크를 얻으려면 다음 예제와 같은 명령을 사용할 수 있습니다.
curl -k -u admin:admin 
  "https://fit-vm13-108.rtp.raleigh.ibm.com:8443/cli/
  version/getLink?component=JPetStore-APP
  &version=1.0
  &linkName=IBM%20web%20site"
이 경우 각 매개변수와 값 쌍은 URL의 물음표(?) 다음에 추가합니다. 앰퍼샌드(&)는 각 쌍을 분리합니다. curl은 Linux 명령이며 앰퍼샌드는 Linux 명령행에서 특별한 의미가 있으므로 매개변수를 포함하는 URL은 따옴표로 묶습니다.
참고: 모든 매개변수 값은 URL로 인코딩되어야 합니다. 이전 예에서는 IBM web site 값을 linkName 매개변수 값으로 전달했습니다. 이 매개변수를 URL의 일부로 포함시키려면 공간을 URL 인코딩 값 %20으로 변경해야 합니다.

JSON 문자열을 명령에 전달

더욱 복잡한 명령은 매개변수 대신 또는 매개변수 외에도 JSON 문자열이나 파일을 전송해야 합니다.
예를 들어, application/create 자원의 PUT 메소드는 애플리케이션을 작성합니다. 이 명령을 사용하려면 새 애플리케이션의 이름, 설명 및 일부 특성을 지정하는 JSON 문자열을 전달해야 합니다. 이 명령의 JSON 문자열은 이 템플리트를 따라야 합니다.
{
  "description": "Description",
  "enforceCompleteSnapshots": "Specify true to require 
     an explicit version for each component",
  "name": "Application name or ID",
  "notificationScheme": "Notification scheme"
}
이 템플리트 목록은 명령의 참조 정보에 표시되어 있습니다. Create an application from a JSON file의 내용을 참조하십시오.
예를 들어, 다음 JSON 문자열은 My Application이라는 애플리케이션을 표시합니다.
{
  "description": "My new application",
  "enforceCompleteSnapshots": "false",
  "name": "My Application",
  "notificationScheme": "Default Notification Scheme"
}
이 JSON 문자열을 application/create 자원으로 전달하도록 문자열을 파일에 저장하거나 명령에 포함할 수 있습니다. 예를 들어, newApplication.json이라는 파일에 문자열을 저장하는 경우 명령은 다음 예와 같습니다.
curl -k -u admin:admin 
  https://fit-vm13-108.rtp.raleigh.ibm.com:8443/cli/application/create 
  -X PUT -d @newApplication.json
다음 예에 표시된 대로 문자열을 직접 명령에 전달할 수 있습니다.
curl -k -u admin:admin 
  https://fit-vm13-108.rtp.raleigh.ibm.com:8443/cli/application/create 
  -X PUT 
  -d {"description":"My new application",
      "enforceCompleteSnapshots":"false",
      "name":"My Application 67",
      "notificationScheme":"Default Notification Scheme"}

JSON 문자열 작성

명령의 JSON 문자열 템플리트를 가져오는 주된 방법은 두 가지가 있습니다. 템플리트 목록은 각 명령의 참조 정보에 표시되어 있습니다. -t 옵션을 사용하여 해당 명령행 클라이언트 명령도 실행할 수 있습니다. 이 옵션을 사용하여 CLI 명령을 실행하면 JSON 템플리트가 인쇄됩니다.

서버 인터페이스에서 REST API를 사용하므로 평소와 같이 서버에 로그인하여 웹 애플리케이션이 생성하는 요청을 모니터할 수 있습니다. 웹 브라우저 확장기능 또는 외부 프로그램으로 이러한 요청을 모니터할 수 있습니다. 예를 들어, resource/create 자원의 PUT 메소드에 사용되는 JSON 문자열을 보려면 다음 그림에 표시된 대로 평소와 같이 웹 서버에서 자원을 작성한 후 브라우저 요청에서 JSON 문자열을 보십시오. REST 명령의 JSON 문자열은 이 문자열과 같거나 비슷합니다.

웹 브라우저
확장기능을 사용하여 서버에서 사용하는 JSON 문자열
모니터

응답

명령에 성공하고 나면 대부분의 명령이 간단한 문자열 값이나 JSON 문자열을 리턴합니다.
명령의 결과 외에도 명령은 표준 HTTP 상태 코드를 리턴합니다. 다음 목록에는 REST 명령이 리턴하는 가장 일반적인 상태 코드가 포함되어 있습니다.
200
명령이 완료되었습니다.
400
  • 명령을 실행할 권한이 없습니다.
  • 필수 매개변수를 지정하지 않았습니다.
  • URL의 자원 경로가 올바르지 않습니다.
404
검색하려는 오브젝트가 없습니다.
405
HTTP 메소드 이름이 올바르지 않습니다.
415
요청 헤더의 컨텐츠 유형이 올바르지 않습니다.
500
서버에 오류가 발생했습니다.

피드백