검색

3.6. 서비스

download PDF

서비스는 API에서 지원하는 오브젝트에 대한 작업을 검색, 업데이트, 제거 및 실행하는 서버의 일부입니다.

다음과 같은 두 가지 유형의 서비스가 있습니다.

오브젝트 컬렉션을 관리하는 서비스
이러한 서비스는 기존 오브젝트를 나열하고 새 오브젝트를 추가할 수 있는 리포지토리입니다. 예를 들어 Vms 서비스는 시스템에서 사용 가능한 가상 머신의 컬렉션을 관리합니다.
특정 오브젝트를 관리하는 서비스
이러한 서비스는 특정 오브젝트에서 작업을 검색, 업데이트, 삭제 및 실행하는 역할을 담당합니다. 예를 들어 Vm 서비스는 특정 가상 머신을 관리합니다.

각 서비스는 서버 내에서 특정 경로 를 통해 액세스할 수 있습니다. 예를 들어 시스템에서 사용 가능한 가상 머신 컬렉션을 관리하는 서비스는 /vms 경로를 통해 에서 사용할 수 있으며, 가상 머신 123 을 관리하는 서비스는 /vms/123 을 통해 사용할 수 있습니다.

모든 종류의 서비스에는 수행할 수 있는 작업을 나타내는 일련의 메서드 가 있습니다. 오브젝트 컬렉션을 관리하는 서비스에는 일반적으로 목록추가 메서드가 있습니다. 특정 오브젝트를 관리하는 서비스에는 일반적으로 get,updateremove 메서드가 있습니다. 또한 서비스에는 덜 일반적인 작업을 나타내는 동작 메서드가 있을 수도 있습니다. 예를 들어 Vm 서비스에는 가상 시스템을 시작하는 데 사용되는 시작 방법이 있습니다.

더 일반적인 메서드의 경우 메서드 이름과 HTTP 메서드 이름 사이에 직접 매핑이 있습니다.For the more usual methods there is a direct mapping between the name of the method and the name of the HTTP method:

메서드 이름HTTP 방법

add

POST

get

GET

list

GET

update

PUT

제거

DELETE

HTTP 요청에 사용된 경로는 /ovirt-engine/api 접두사가 있는 서비스의 경로입니다.

예를 들어, 가상 머신 목록 요청은 HTTP GET 메서드와 /vms 경로를 사용하여 다음과 같아야 합니다.

GET /ovirt-engine/api/vms

작업 메서드의 경우 HTTP 메서드는 항상 POST 이며 메서드의 이름은 경로에 접미사로 추가됩니다.For action methods the HTTP method is always POST , and the name of the method is added as a suffix to the path. 예를 들어 가상 머신( 123 )을 시작하는 요청은 HTTP POST 메서드와 /vms/123/start 경로를 사용하여 다음과 같아야 합니다.

POST /ovirt-engine/api/vms/123/start

각 방법에는 매개 변수 집합이 있습니다.

매개변수는 다음 두 가지 범주로 분류됩니다.

기본 매개변수
main 매개변수는 검색, 추가 또는 업데이트되는 오브젝트 또는 컬렉션에 해당합니다. 이 매개 변수는 add,get,listupdate 메서드에만 적용되며, 메서드당 이러한 기본 매개 변수 하나만 있습니다.
보조 매개변수
나머지 매개 변수

예를 들어 가상 시스템을 추가하는 작업에는 vm,cloneclone_permissions 라는 세 가지 매개 변수가 있습니다. main 매개 변수는 추가된 오브젝트를 설명하는 vm 입니다. cloneclone_permissions 매개변수는 보조 매개 변수입니다.

input에 사용할 때 main 매개변수는 HTTP 요청의 본문에 포함되어야 합니다. 예를 들어 가상 머신을 추가할 때 Vm 유형의 vm 매개 변수를 요청 본문에 포함해야 합니다. 따라서 모든 HTTP 세부 정보를 포함하여 가상 머신 추가 요청은 다음과 같아야 합니다.

POST /ovirt-engine/api/vms HTTP/1.1
Host: myengine.example.com
Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI=
Content-Type: application/xml
Accept: application/xml

<vm>
  <name>myvm</name>
  <description>My VM</description>
  <cluster>
    <name>Default</name>
  </cluster>
  <template>
    <name>Blank</name>
  </template>
</vm>

출력에 사용하면 기본 매개변수가 응답 본문에 포함됩니다. 예를 들어 가상 머신을 추가할 때 vm 매개 변수는 응답 본문에 포함됩니다. 따라서 전체 응답 본문은 다음과 같습니다.

HTTP/1.1 201 Created
Content-Type: application/xml

<vm href="/ovirt-engine/api/vms/123" id="123">
  <name>myvm</name>
  <description>My VM</description>
  ...
</vm>

보조 매개변수는 입력에만 허용됩니다(나중에 설명되는 작업 메서드 제외) 쿼리 매개 변수로 포함되어야 합니다. 예를 들어 clone 매개 변수가 true 로 설정된 가상 머신을 추가하는 경우 전체 요청은 다음과 같아야 합니다.

POST /ovirt-engine/api/vms?clone=true HTTP/1.1
Host: myengine.example.com
Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI=
Content-Type: application/xml
Accept: application/xml

<vm>
  <name>myvm</name>
  <description>My VM</description>
  <cluster>
    <name>Default</name>
  </cluster>
  <template>
    <name>Blank</name>
  </template>
</vm>

작업 방법에는 보조 매개 변수만 있습니다. 입력 및 출력에 사용할 수 있으며 작업 요소로 래핑된 요청 본문에 포함되어야 합니다. 예를 들어 가상 시스템을 시작하는 데 사용되는 작업 방법에는 vm 매개 변수가 있어가상 시스템을 시작하는 방법을 설명하고, use_cloud_init 매개 변수를 사용하여 게스트 운영 체제를 구성해야 하는지 여부를 지정합니다. https://cloudinit.readthedocs.io 따라서 cloud-init 를 사용하여 가상 머신 123 을 시작하는 전체 요청은 XML을 사용할 때 다음과 같이 표시됩니다.

POST /ovirt-engine/api/vms/123/start HTTP/1.1
Host: myengine.example.com
Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI=
Content-Type: application/xml
Accept: application/xml

<action>
  <use_cloud_init>true</use_cloud_init>
  <vm>
    <initialization>
      <nic_configurations>
        <nic_configuration>
          <name>eth0</name>
          <on_boot>true</on_boot>
          <boot_protocol>static</boot_protocol>
          <ip>
            <address>192.168.0.100</address>
            <netmask>255.255.255.0</netmask>
            <gateway>192.168.0.1</netmask>
          </ip>
        </nic_configuration>
      </nic_configurations>
      <dns_servers>192.168.0.1</dns_servers>
    </initialization>
  </vm>
</action>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.