Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-08 GMT+08:00

Seleção do tipo ou versão da API

Tipos de API

As API do ECS são classificadas da seguinte forma:

  1. As API para ECS com especificações personalizadas
  2. As API OpenStack nativo que estão em conformidade com as especificações da comunidade do OpenStack

Os dois tipos das API oferecem funções semelhantes, mas são usados em diferentes cenários de aplicativos. As API OpenStack são usadas para se interconectar com ferramentas de ecossistema de código aberto. As API do ECS aprimoraram certas funções com base nas API do OpenStack. Para usar melhor as API OpenStack, é aconselhável aprender sobre os conceitos e conhecimentos do OpenStack.

Versões

As API para ECS incluem as API OpenStack nativo e as API de ECS. As API do ECS podem ser V1 ou V1.1. Recomendamos que você use as APIs do ECS.

As API OpenStack podem ser V2 ou V2.1. A V2.1 suporta todas as funções suportadas pela V2. Além disso, a V2.1 suporta microversões. Se as API OpenStack forem usadas, as API V2.1 são recomendadas.

Para mudar uma API do OpenStack da V2.1 para a V2, altere 2.1 no URI da API nativa para 2.

Microversões

As microversões especificam pequenas alterações na API. Uma API V2.1 permite que você especifique uma microversão para novas funções de API relacionadas. Para obter as versões principais suportadas e as microversões máximas e mínimas, consulte Consulta de todas as versões da API.

Para habilitar recursos de microversão, adicione cabeçalho X-OpenStack-Nova-API-Version ou OpenStack-API-Version à solicitação ao chamar uma API OpenStack. Por exemplo, para ativar os recursos do microversion V2.26, adicione o seguinte cabeçalho à solicitação HTTPS:

X-OpenStack-Nova-API-Version: 2.26 ou OpenStack-API-Version: compute 2.26

Se você não especificar o cabeçalho de uma API V2.1, o sistema usará o cabeçalho OpenStack-API-Version: compute 2.1 ou X-OpenStack-Nova-API-Version: 2.1 por defeito.

Exemplo de solicitação de microversão

Por exemplo, é necessário usar a API para obter detalhes sobre um ECS para exibir o campo OS-EXT-SRV-ATTR:hostname.

  • Usando uma API V2 sem uma microversão
    • GET: https://{Endpoint}/v2/74610f3a5ad941998e91f076297ecf27/servers/detail

      {Endpoint} indica o ponto final do IAM. Para mais detalhes, consulte Endpoints.

    • Cabeçalhos

      Tipo de conteúdo

      aplicação/json

      X-Auth-Token

      ${token}

    • Corpo da resposta
      {
        "servers": [
          {
            "tenant_id": "74610f3a5ad941998e91f076297ecf27",
            "addresses": {
              "05d4fb93-84e5-4964-853b-32992ffef627": [
                {
                  "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:20:17:95",
                  "OS-EXT-IPS:type": "fixed",
                  "addr": "192.168.0.228",
                  "version": 4
                },
                {
                  "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:20:17:95",
                  "OS-EXT-IPS:type": "floating",
                  "addr": "192.168.51.61",
                  "version": 4
                }
              ]
            },
            "metadata": {},
            "OS-EXT-STS:task_state": null,
            "OS-DCF:diskConfig": "MANUAL",
            "OS-EXT-AZ:availability_zone":"az1-dc1",
            "links": [
              {
                "rel": "self",
                "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/89c312bb-285a-4026-a237-d441908c2f9e"
              },
              {
                "rel": "bookmark",
                "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/89c312bb-285a-4026-a237-d441908c2f9e"
              }
            ],
            "OS-EXT-STS:power_state": 1,
            "id": "89c312bb-285a-4026-a237-d441908c2f9e",
            "os-extended-volumes:volumes_attached": [
              {
                "id": "c70c4b8e-33bd-4d1f-ab16-14a5a38cdeaf"
              }
            ],
            "OS-EXT-SRV-ATTR:host": "pod05.test.01",
            "image": {
              "links": [
                {
                  "rel": "bookmark",
                  "href": "https://None/74610f3a5ad941998e91f076297ecf27/images/1189efbf-d48b-46ad-a823-94b942e2a000"
                }
              ],
              "id": "1189efbf-d48b-46ad-a823-94b942e2a000"
            },
            "OS-SRV-USG:terminated_at": null,
            "accessIPv4": "",
            "accessIPv6": "",
            "created": "2018-05-11T03:21:56Z",
            "hostId": "fc7a8ff86bac050f0d9454b1b078dcc97060e819acbf06f04c3e338f",
            "OS-EXT-SRV-ATTR:hypervisor_hostname": "nova012@7",
            "key_name": "id_rsa",
            "flavor": {
              "links": [
                {
                  "rel": "bookmark",
                  "href": "https://None/74610f3a5ad941998e91f076297ecf27/flavors/s3.small.1"
                }
              ],
              "id": "s3.small.1"
            },
            "security_groups": [
              {
                "name": "default"
              }
            ],
            "config_drive": "",
            "OS-EXT-STS:vm_state": "active",
            "OS-EXT-SRV-ATTR:instance_name": "instance-0016c624",
            "user_id": "f79791beca3c48159ac2553fff22e166",
            "name": "zt-test",
            "progress": 0,
            "OS-SRV-USG:launched_at": "2018-05-11T03:22:16.701600",
            "updated": "2018-05-11T03:22:51Z",
            "status": "ACTIVE"
          }
        ]
      }
    • Conclusão: O corpo da resposta não contém o campo OS-EXT-SRV-ATTR:hostname.
  • Usando uma API V2.1 com uma microversão
    • GET: https://{Endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/detail

      {Endpoint} indica o ponto final do IAM. Para mais detalhes, consulte Endpoints.

    • Cabeçalhos

      Tipo de conteúdo

      aplicação/json

      X-Auth-Token

      ${token}

      X-OpenStack-Nova-API-Version

      2.26

    • Corpo da resposta
      {
        "servers": [
          {
            "tenant_id": "74610f3a5ad941998e91f076297ecf27",
            "addresses": {
              "05d4fb93-84e5-4964-853b-32992ffef627": [
                {
                  "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:20:17:95",
                  "OS-EXT-IPS:type": "fixed",
                  "addr": "192.168.0.228",
                  "version": 4
                },
                {
                  "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:20:17:95",
                  "OS-EXT-IPS:type": "floating",
                  "addr": "192.168.51.61",
                  "version": 4
                }
              ]
            },
            "metadata": {},
            "OS-EXT-STS:task_state": null,
            "description": "zt-test",
            "OS-EXT-SRV-ATTR:hostname": "zt-test",
            "OS-DCF:diskConfig": "MANUAL",
            "OS-EXT-AZ:availability_zone":"az-test-01",
            "links": [
              {
                "rel": "self",
                "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/89c312bb-285a-4026-a237-d441908c2f9e"
              },
              {
                "rel": "bookmark",
                "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/89c312bb-285a-4026-a237-d441908c2f9e"
              }
            ],
            "OS-EXT-STS:power_state": 1,
            "id": "89c312bb-285a-4026-a237-d441908c2f9e",
            "os-extended-volumes:volumes_attached": [
              {
                "delete_on_termination": true,
                "id": "c70c4b8e-33bd-4d1f-ab16-14a5a38cdeaf"
              }
            ],
            "locked": false,
            "OS-EXT-SRV-ATTR:kernel_id": "",
            "OS-EXT-SRV-ATTR:host":"pod05.test.01" ,
            "OS-EXT-SRV-ATTR:ramdisk_id": "",
            "image": {
              "links": [
                {
                  "rel": "bookmark",
                  "href": "https://None/74610f3a5ad941998e91f076297ecf27/images/1189efbf-d48b-46ad-a823-94b942e2a000"
                }
              ],
              "id": "1189efbf-d48b-46ad-a823-94b942e2a000"
            },
            "accessIPv4": "",
            "OS-SRV-USG:terminated_at": null,
            "accessIPv6": "",
            "OS-EXT-SRV-ATTR:launch_index": 0,
            "created": "2018-05-11T03:21:56Z",
            "OS-EXT-SRV-ATTR:user_data": null,
            "hostId": "fc7a8ff86bac050f0d9454b1b078dcc97060e819acbf06f04c3e338f",
            "OS-EXT-SRV-ATTR:reservation_id": "r-pbqmaxer",
            "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda",
            "host_status": "UP",
            "OS-EXT-SRV-ATTR:hypervisor_hostname": "nova012@7",
            "tags": [],
            "key_name": "id_rsa",
            "flavor": {
              "links": [
                {
                  "rel": "bookmark",
                  "href": "https://None/74610f3a5ad941998e91f076297ecf27/flavors/s3.small.1"
                }
              ],
              "id": "s3.small.1"
            },
            "security_groups": [
              {
                "name": "default"
              }
            ],
            "config_drive": "",
            "OS-EXT-STS:vm_state": "active",
            "OS-EXT-SRV-ATTR:instance_name": "instance-0016c624",
            "user_id": "f79791beca3c48159ac2553fff22e166",
            "name": "zt-test",
            "progress": 0,
            "OS-SRV-USG:launched_at": "2018-05-11T03:22:16.701600",
            "updated": "2018-05-11T03:22:51Z",
            "status": "ACTIVE"
          }
        ]
      }
    • Conclusão: O corpo da resposta contém o campo OS-EXT-SRV-ATTR:hostname.