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 todas las API en un grupo de API

Función

Esta API se utiliza para exportar definiciones de API en un grupo de API especificado.

Se importarán las definiciones de Swagger básicas, completas o extendidas de las API pertenecientes al grupo de API y publicadas en un entorno específico.

URI

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

Tabla 1 Método de solicitud de HTTP/HTTPS y URI

Método de solicitud

URI

GET

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

Solicitud

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.

group_id/group

String

ID de grupo de API. Tanto group_id como group pueden indicar un ID de grupo. Si los dos parámetros están disponibles, el valor de group_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.

Respuesta

Tabla 3 Descripción de parámetro

Parámetro

Obligatorio

Tipo

Descripción

swagger

String

El valor se fija en 2.0.

info

Object

Consulte Tabla 4.

host

String

Nombre del subdominio enlazado al grupo de API

paths

Object

Consulte Tabla 5.

responses

Object

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

securityDefinitions

Object

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

x-apigateway-access-controls

No

Object

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

x-apigateway-ratelimits

No

Object

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

Tabla 4 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 5 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 6.

Tabla 6 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 7.

Tabla 7 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 8.

responses

Object

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

security

No

Object

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

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 15.

x-apigateway-backend-policies

No

Object

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

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 8 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 de parámetro

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

Indica si el parámetro es necesario. El parámetro es necesario cuando su ubicación es path.

Tabla 9 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. Para obtener más información, consulte Tabla 11.

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 10 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 11 Descripción del parámetro de status_code

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 12.

Tabla 12 Descripción del parámetro del esquema

Parámetro

Obligatorio

Tipo

Descripción

description

No

String

Cuerpo de respuesta

type

No

String

Tipo de cuerpo, que puede ser FORM o STREAM

Tabla 13 Descripción de parámetros de securityDefinitions

Parámetro

Obligatorio

Tipo

Descripción

name

Object

Autorizador personalizado. Para obtener más información, consulte Tabla 14.

Tabla 14 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 15 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 17.

backend_define

Object

Definición de backend

Se admiten las siguientes definiciones de backend:

Tabla 16 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 17.

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 22.

effectMode

String

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

Tabla 17 Backend parameter description

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 18 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 19 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 20 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 21 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 22 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 23 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 24.

Tabla 24 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 25 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 26.

Tabla 26 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 27.

Tabla 27 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 28 Códigos de estado

Código de estado

Descripción

200

OK

400

bad request

401

unauthorized

403

forbidden

500

server internal error