Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-03-29 GMT+08:00

Exportación de varias APIs

Función

Esta API se utiliza para exportar la definición de Swagger básica, completa o extendida de las API especificadas por sus ID.

URI

La siguiente tabla muestra el método de solicitud HTTP/HTTPS y el URI de la API.

Tabla 1

Método de solicitud

URI

POST

/v1.0/apigw/openapi/apis?env_id={0}&define={2}&version={3}&type={4}

En la siguiente tabla se muestra el parámetro en el URI.

Tabla 2 Descripción de parámetro

Parámetro

Obligatorio

Tipo

Descripción

env_id/env

String

ID del entorno en el que se han publicado las API de un grupo específico. Tanto env_id como env pueden indicar un ID de entorno. Si los dos parámetros están disponibles, el valor de env_id tiene prioridad.

define

No

String

Ámbito de definición de las API que se van a exportar:

  • base: definición básica
  • full: definición completa
  • all: definición extendida

El valor predeterminado es base.

version

No

String

Versión de las API después de exportar. El valor predeterminado es la fecha y hora actuales.

type

No

String

Formato para exportar definiciones de API. El valor puede ser json o yaml. El valor predeterminado es json.

Solicitud

Tabla 3 Descripción de parámetro

Localización

Obligatorio

Tipo

Descripción

body

String Array

ID de las API que se van a exportar

Ejemplo de solicitud:

["81efcfd94b8747a0b21e8c04144a4e8c","7addcd00cfab433984b1d8bf2fe08aaa"]

Respuesta

Tabla 4 Descripción de parámetro

Parámetro

Obligatorio

Tipo

Descripción

swagger

String

El valor se fija en 2.0.

info

Object

Para obtener más información, consulte Tabla 5.

host

String

Nombre del subdominio enlazado al grupo de API

paths

Object

Consulte Tabla 6.

responses

Object

Respuesta común, a la que se puede hacer referencia en el documento {method}. Para obtener más información, consulte Tabla 10.

securityDefinitions

Object

Definición del modo de autenticación de seguridad. Para obtener más información, consulte Tabla 14.

x-apigateway-access-controls

No

Object

Información de control de acceso. Para obtener más información, consulte Tabla 24.

x-apigateway-ratelimits

No

Object

Solicitud de información de limitación. Para obtener más información, consulte Tabla 26.

Tabla 5 Descripción del parámetro de la información

Parámetro

Obligatorio

Tipo

Descripción

title

String

Nombre del grupo de API

version

String

Número de versión. Puede especificar un número de versión o utilizar la fecha y hora actuales de forma predeterminada.

description

No

String

Descripción del grupo de API

Tabla 6 Descripción de parámetros de paths

Parámetro

Obligatorio

Tipo

Descripción

uri

Object

Dirección de acceso de API. Para obtener más información, consulte Tabla 7.

Tabla 7 Descripción del parámetro de uri

Parámetro

Obligatorio

Tipo

Descripción

method

Object

Método de acceso a la API. Para obtener más información, consulte Tabla 8.

Tabla 8 Descripción de parámetros del método

Parámetro

Obligatorio

Tipo

Descripción

operationId

String

Nombre de la API

description

No

String

Descripción de la API

schemes

Object

Protocolo de solicitud de API. HTTP y HTTPS son compatibles.

tags

No

Object

Etiquetas de API

parameters

No

Object

Solicitud de definiciones de parámetros. Para obtener más información, consulte Tabla 9.

responses

Object

Definición de respuesta. Para obtener más información, consulte Tabla 10.

security

No

Object

Modo de autenticación de seguridad. Para obtener más información, consulte Tabla 11.

x-apigateway-access-control

No

Object

Política de control de acceso vinculada a la API

x-apigateway-backend

No

Object

Información de backend. Para obtener más información, consulte Tabla 16.

x-apigateway-backend-policies

No

Object

Información sobre la política de backend. Para obtener más información, consulte Tabla 17.

x-apigateway-cors

No

Boolean

Indica si se admite CORS.

x-apigateway-match-mode

No

String

Modo de coincidencia de ruta

x-apigateway-ratelimit

No

String

Nombre de la política de limitación de solicitudes vinculada a la API

x-apigateway-request-type

No

String

Tipo de API

Tabla 9 Descripción del parámetro de frontend

Parámetro

Obligatorio

Tipo

Descripción

maximum

No

Float

Valor máximo de un parámetro de tipo de número

minimum

No

Float

Valor mínimo de un parámetro de tipo de número

maxLength

No

Integer

Longitud máxima de un parámetro de tipo de cadena

minLength

No

Integer

Longitud mínima de un parámetro de tipo de cadena

pattern

No

String

Expresión regular del valor del parámetro

type

No

String

Tipo

default

No

String

Valor predeterminado

description

No

String

Descripción de parámetro

name

No

String

Nombre del parámetro

in

No

String

Ubicación del parámetro, que puede ser path, header, query, formData o body

required

No

Boolean

Si se requiere el parámetro. El parámetro es necesario cuando su ubicación es path.

Tabla 10 Descripción de parámetros de responses

Parámetro

Obligatorio

Tipo

Descripción

default

No

Object

Respuesta predeterminada, que se usará cuando no se defina ningún código de estado

status_code

No

Object

Código de estado de respuesta. El valor es un objeto de respuesta. Para obtener más información, consulte Tabla 12.

x-apigateway-result-failure-sample

No

String

Ejemplo de respuesta para una solicitud fallida

x-apigateway-result-normal-sample

No

String

Ejemplo de respuesta para una solicitud correcta

Tabla 11 Descripción de parámetros de seguridad

Parámetro

Obligatorio

Tipo

Descripción

apig-auth-type

No

Object

Modo de autenticación de seguridad. Este parámetro es una matriz nula.

Opciones:

  • apig-auth-app: autenticación de aplicaciones
  • apig-auth-iam: authenticación de IAM
  • Null: No se requiere autenticación
Tabla 12 Descripción del parámetro del código de estado

Parámetro

Obligatorio

Tipo

Descripción

description

No

String

Descripción de la respuesta

schema

No

Object

Cuerpo de respuesta. Para obtener más información, consulte Tabla 13.

Tabla 13 Descripción del parámetro del esquema

Parámetro

Obligatorio

Tipo

Descripción

description

No

String

Descripción del cuerpo

type

No

String

Tipo de cuerpo, que puede ser FORM o STREAM

Tabla 14 Descripción de parámetros de securityDefinitions

Parámetro

Obligatorio

Tipo

Descripción

name

Object

Modo de autenticación de seguridad. Para obtener más información, consulte Tabla 15.

Tabla 15 Parámetro descripción del nombre

Parámetro

Obligatorio

Tipo

Descripción

type

String

Tipo de autenticación. Se admite apiKey.

name

String

Nombre de apiKey

in

String

Ubicación de apiKey

x-apigateway-auth-type

String

Tipo de autenticación extendido basado en apiKey. Se admiten los tipos de autenticación de AppSigv1, IAM e IAM_NONE.

Tabla 16 Descripción del parámetro de x-apigateway-backend

Parámetro

Obligatorio

Tipo

Descripción

type

String

Tipo de backend. Las opciones incluyen HTTP, HTTP-VPC, FUNCTION, y MOCK.

parameters

No

Object

Parámetros de backend. Para obtener más información, consulte Tabla 18.

backend_define

Object

Definición de backend

Se admiten las siguientes definiciones de backend:

Tabla 17 Descripción del parámetro de x-apigateway-backend-policies

Parámetro

Obligatorio

Tipo

Descripción

type

String

Tipo de backend. Las opciones incluyen HTTP, HTTP-VPC, FUNCTION, y MOCK.

name

String

Nombre de política de backend

parameters

No

Object

Parámetros de backend. Para obtener más información, consulte Tabla 18.

backend_define

Object

Definición de backend

Se admiten las siguientes definiciones de backend:

conditions

Object

Condiciones de política. Para obtener más información, consulte Tabla 23.

effectMode

String

Modo efectivo de la política de backend. Las opciones incluyen ANY y ALL.

Tabla 18 Descripción de parámetro de backend

Parámetro

Obligatorio

Tipo

Descripción

name

String

Nombre del parámetro, que consta de un máximo de 32 bytes, comenzando con una letra. Solo se permiten letras, dígitos, puntos (.), guiones (-) y guiones bajos (_).

Los nombres de los parámetros de encabezado no distinguen entre mayúsculas y minúsculas.

value

String

Valor de parámetro, que es un nombre de parámetro si el parámetro proviene de una solicitud

in

String

Ubicación del parámetro, que puede ser header, query o path

origin

String

Fuente de asignación de parámetros. Las opciones incluyen REQUEST y CONSTANT.

description

No

String

Significado del parámetro

Tabla 19 Descripción del parámetro del backend de httpEndpoints

Parámetro

Obligatorio

Tipo

Descripción

address

String

Dirección de servicio de backend. El formato es de <Domain name or IP address>:[Port number]

scheme

String

Protocolo de solicitud de backend. HTTP y HTTPS son compatibles.

method

String

Método de solicitud de backend. Las opciones incluyen GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH y ANY.

path

String

Ruta de solicitud de backend, que puede contener variables.

timeout

No

Integer

Tiempo de espera de la solicitud de backend en milisegundos. El valor oscila entre 1 y 60,000 y el valor predeterminado es 5000.

description

No

String

Descripción del backend

Tabla 20 Descripción del parámetro de backend httpVpcEndpoints

Parámetro

Obligatorio

Tipo

Descripción

name

Array

Nombre del canal de VPC

scheme

String

Protocolo de solicitud de backend. HTTP y HTTPS son compatibles.

method

String

Método de solicitud de backend. Las opciones incluyen GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH y ANY.

path

String

Ruta de solicitud de backend, que puede contener variables.

timeout

No

Integer

Tiempo de espera de la solicitud de backend en milisegundos. El valor oscila entre 1 y 60,000 y el valor predeterminado es 5000.

host

No

String

host de proxy de canal de VPC

description

No

String

Descripción del backend

Tabla 21 Descripción del parámetro de functionEndpoints de backend

Parámetro

Obligatorio

Tipo

Descripción

function-urn

String

Función URN

version

String

Versión de la función

invocation-type

String

Tipo de invocación de función. El valor puede ser async o sync.

timeout

No

Integer

Tiempo de espera de la función en milisegundos. El valor oscila entre 1 y 60,000 y el valor predeterminado es 5000.

description

No

String

Descripción del backend

Tabla 22 Descripción del parámetro de mockEndpoints de backend

Parámetro

Obligatorio

Tipo

Descripción

result-content

String

Respuesta de simulacro

description

No

String

Descripción del backend

Tabla 23 Descripción del parámetro de las condiciones

Parámetro

Obligatorio

Tipo

Descripción

type

String

Tipo de condición de política. Las opciones incluyen equal, enum y pattern.

value

String

Valor de condición de política

origin

String

Origen de la condición de la política. Las opciones incluyen source y request.

parameter

No

String

Nombre del parámetro de entrada si el parámetro origin está establecido en request.

Tabla 24 Descripción del parámetro de x-apigateway-access-controls

Parámetro

Obligatorio

Tipo

Descripción

acl_name

No

Object

Política de control de acceso. Para obtener más información, consulte Tabla 25.

Tabla 25 Descripción de parámetro de acl_name

Parámetro

Obligatorio

Tipo

Descripción

acl-type

String

Efecto de control de acceso. Las opciones incluyen PERMIT y DENY.

entity-type

String

Objeto de control de acceso. Solo se admiten direcciones IP y cuentas.

value

String

Valores de control de acceso, que se separan con comas (,).

Tabla 26 Descripción del parámetro de x-apigateway-ratelimits

Parámetro

Obligatorio

Tipo

Descripción

throttle_name

No

Object

Solicitud de política de limitación. Para obtener más información, consulte Tabla 27.

Tabla 27 Descripción del parámetro de throttle_name

Parámetro

Obligatorio

Tipo

Descripción

api-limit

Integer

Número máximo de veces que se puede invocar a una API

user-limit

No

Integer

Número de veces que un usuario puede invocar a la API

app-limit

No

Integer

Número de veces que una aplicación puede invocar a la API

ip-limit

No

Integer

Número de veces que se puede invocar a la API mediante una dirección IP

interval

Integer

Período de limitación

unit

String

Unidad de limitación, que puede ser SECOND, MINUTE, HOUR o DAY

shared

No

Boolean

Si desea compartir los límites de limitación entre las API

special

No

Object

Configuraciones de limitación de solicitudes excluidas. Para obtener más información, consulte Tabla 28.

Tabla 28 Descripción del parámetro de special

Parámetro

Obligatorio

Tipo

Descripción

type

String

Tipo de estrangulamiento de solicitud excluido, que puede ser APP o USER

limit

Integer

Límite de acceso

instance

String

Aplicación o usuario excluido

Ejemplo de respuesta:

{
	"swagger": "2.0",
	"info": {
		"description": "api group test",
		"title": "APIGroup_test",
		"version": "2019-09-12-17:38:10"
	},
	"host": "6b075335476a4943bf70c3db1343c912.apigw.example.com",
	"paths": {
		"/test/{path}": {
			"get": {
				"security": [
					{
						"apig-auth-app": []
					}
				],
				"description": "api test",
				"schemes": [
					"https"
				],
				"operationId": "API_test",
				"parameters": [
					{
						"type": "string",
						"description": "header parameter",
						"name": "header",
						"in": "header",
						"required": true
					},
					{
						"type": "string",
						"description": "path parameter",
						"name": "path",
						"in": "path",
						"required": true
					},
					{
						"type": "number",
						"default": "123",
						"description": "query parameter",
						"name": "query",
						"in": "query"
					}
				],
				"responses": {
					"default": {
						"$ref": "#/responses/default"
					},
					"x-apigateway-result-failure-sample": "",
					"x-apigateway-result-normal-sample": "success"
				},
				"x-apigateway-backend": {
					"httpEndpoints": {
						"address": "1.1.1.1:443",
						"description": "",
						"method": "GET",
						"path": "/test/{path}",
						"scheme": "https",
						"timeout": 5000
					},
					"parameters": [
						{
							"description": "",
							"in": "HEADER",
							"name": "header",
							"origin": "REQUEST",
							"value": "header"
						},
						{
							"description": "",
							"in": "PATH",
							"name": "path",
							"origin": "REQUEST",
							"value": "path"
						},
						{
							"description": "",
							"in": "QUERY",
							"name": "query",
							"origin": "REQUEST",
							"value": "query"
						}
					],
					"type": "HTTP"
				},
				"x-apigateway-backend-policies": [
					{
						"conditions": [
							{
								"origin": "param",
								"parameter": "path",
								"type": "exact",
								"value": "path"
							},
							{
								"origin": "source",
								"parameter": "",
								"type": "",
								"value": "1.0.0.0/8"
							}
						],
						"effectMode": "ANY",
						"httpVpcEndpoints": {
							"method": "POST",
							"name": "VPC_n9ct",
							"path": "/",
							"scheme": "HTTPS",
							"timeout": 5000
						},
						"name": "policy_test",
						"type": "HTTP-VPC"
					}
				],
				"x-apigateway-cors": false,
				"x-apigateway-match-mode": "NORMAL",
				"x-apigateway-request-type": "public"
			}
		}
	},
	"responses": {
		"default": {
			"description": "response example"
		}
	},
	"securityDefinitions": {
		"apig-auth-app": {
			"type": "apiKey",
			"name": "Authorization",
			"in": "header",
			"x-apigateway-auth-type": "AppSigv1"
		},
		"apig-auth-iam": {
			"type": "apiKey",
			"name": "unused",
			"in": "header",
			"x-apigateway-auth-type": "IAM"
		}
	}
}

Códigos de estado

Tabla 29 Códigos de estado

Código de estado

Descripción

200

OK

400

bad request

401

unauthorized

403

forbidden

500

server internal error