Creación de una API
Función
Esta API se utiliza para registrar una API. API es una interfaz que encapsula un conjunto de capacidades de servicio.
La definición de una API se divide en dos partes. Una parte define cómo la API es invocada por los usuarios, y la otra parte define cómo la APIG accede al servicio de backend real solicitado por los usuarios.
APIG admite tres tipos de backend: HTTP/HTTPS web, FunctionGraph y Mock.
URI
La siguiente tabla muestra el método de solicitud HTTP/HTTPS y el URI de la API.
Método de solicitud |
URI |
---|---|
POST |
/v1.0/apigw/apis |
Solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
group_id |
Sí |
String |
ID del grupo de API al que pertenecerá la API que se creará |
name |
Sí |
String |
Nombre de la API Un nombre de API consta de 3 a 64 caracteres, comenzando con una letra. Solo se permiten letras, dígitos y guiones bajos (_). |
type |
Sí |
Integer |
Indica si la API está disponible para el público. El valor puede ser:
|
version |
No |
String |
Versión de la API Se permite un máximo de 16 caracteres. |
req_protocol |
No |
String |
Protocolo de solicitud, que puede ser:
Valor predeterminado HTTPS |
req_method |
Sí |
String |
Método de solicitud, que puede ser:
|
req_uri |
Sí |
String |
Dirección de acceso
NOTA:
El valor de este parámetro debe cumplir con las especificaciones de URI. |
match_mode |
No |
String |
Modo de coincidencia de rutas, que puede ser:
Valor predeterminado NORMAL |
remark |
No |
String |
Descripción de la API La descripción no puede superar los 255 caracteres. |
auth_type |
Sí |
String |
Modo de autenticación de seguridad, que puede ser:
|
auth_opt |
No |
AuthOpt object |
Parámetro del modo de autenticación de seguridad |
authorizer_id |
No |
String |
ID del autorizador personalizado de frontend |
backend_type |
Sí |
String |
Tipo de backend, que puede ser:
|
tag |
No |
String |
Etiqueta de nombre de servicio Este campo será descartado. |
tags |
No |
Array of string |
Etiquetas de API Opcional. Este parámetro contiene una etiqueta de nombre de servicio y otras etiquetas. La etiqueta de nombre de servicio debe comenzar con APIG-SN-. Otras etiquetas no pueden comenzar con APIG-SN-. |
cors |
No |
Bool |
Indica si se admite CORS.
Valor predeterminado: FALSE |
body_remark |
No |
String |
Descripción del cuerpo de solicitud de API, que puede ser un cuerpo de solicitud de ejemplo, tipo de medio o información de parámetro La descripción no puede superar los 20,480 caracteres. |
result_normal_sample |
No |
String |
Ejemplo de respuesta para una solicitud correcta La longitud no puede exceder los 20,480 caracteres. |
result_failure_sample |
No |
String |
Ejemplo de respuesta para una solicitud fallida La longitud no puede exceder los 20,480 caracteres. |
response_id |
No |
String |
ID de la respuesta personalizada |
backend_api |
Required if backend_type is set to HTTP. |
Dictionary |
Detalles de backend de Web. |
mock_info |
Required if backend_type is set to MOCK. |
Dictionary |
Detalles de backend de Mock |
func_info |
Required if backend_type is set to FUNCTION. |
Dictionary |
Detalles del backend de FunctionGraph |
req_params |
No |
Dictionary |
Lista de parámetros de solicitud |
backend_params |
No |
Dictionary |
Lista de parámetros de backend |
policy_https |
Optional if backend_type is set to HTTP. |
Dictionary |
Lista de políticas de backend de web |
policy_mocks |
Optional if backend_type is set to MOCK. |
Dictionary |
Lista de políticas de backend de Mock |
policy_functions |
Optional if backend_type is set to FUNCTION. |
Dictionary |
Lista de políticas de backend de FunctionGraph |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
url_domain |
Required when no VPC channel is used. |
String |
Dirección de servicio de backend Una URL de punto de conexión tiene el formato de "nombre de dominio (o dirección IP):número de puerto", con hasta 255 caracteres. Por ejemplo, apig.example.com:7443. De forma predeterminada, el número de puerto sería 443 para HTTPS o 80 para HTTP si no se especifica. Un punto de conexión puede contener variables de entorno, cada una comenzando con una letra y constando de 3 a 32 caracteres. Solo se permiten letras, dígitos, guiones (-) y guiones bajos (_) en las variables de entorno. |
version |
No |
String |
Versión de backend de web Se permite un máximo de 16 caracteres. |
req_protocol |
Sí |
String |
Protocolo de solicitud, que puede ser:
|
req_method |
Sí |
String |
Método de solicitud, que puede ser:
|
req_uri |
Sí |
String |
Dirección de solicitud Una dirección de solicitud puede contener hasta 512 caracteres y debe cumplir con las especificaciones de URI. La dirección de solicitud puede contener variables de entorno, cada una comenzando con una letra y constando de 3 a 32 caracteres. Solo se permiten letras, dígitos, guiones (-) y guiones bajos (_) en las variables de entorno.
NOTA:
El valor de este parámetro debe cumplir con las especificaciones de URI. |
timeout |
Sí |
Integer |
Tiempo de espera para que APIG solicite el servicio de backend. Alcance: 1–60,000. Unidad: ms. |
remark |
No |
String |
Descripción del servicio de backend La descripción no puede superar los 255 caracteres. |
vpc_status |
No |
Integer |
Indica si se debe utilizar un canal de VPC. El valor puede ser:
|
vpc_info |
Required when vpc_status is set to 1. |
Dictionary |
Detalles del canal de VPC |
authorizer_id |
No |
String |
ID del autorizador personalizado de backend |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
vpc_id |
Sí |
String |
ID de canal de VPC |
vpc_proxy_host |
No |
String |
Host de proxy |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
result_content |
No |
String |
Respuesta de simulacro |
version |
No |
String |
Versión del backend de simulacro Se permite un máximo de 64 caracteres. |
remark |
No |
String |
Descripción del backend de simulacro La descripción no puede superar los 255 caracteres. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
function_urn |
Sí |
String |
Función URN |
invocation_type |
Sí |
String |
Modo de invocación, que puede ser async o sync |
timeout |
Sí |
Integer |
Duración del tiempo de espera de APIG para solicitar FunctionGraph. Alcance: 1–60,000. Unidad: ms. |
version |
No |
String |
Versión de la función Se permite un máximo de 64 caracteres. |
remark |
No |
String |
Descripción de la función La descripción no puede superar los 255 caracteres. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre del parámetro El nombre de un parámetro consta de 1 a 32 caracteres, comenzando por una letra. Solo se permiten letras, dígitos, puntos (.), guiones (-) y guiones bajos (_). |
type |
Sí |
String |
Tipo de parámetro, que puede ser:
|
location |
Sí |
String |
Ubicación del parámetro, que puede ser:
|
default_value |
No |
String |
Valor predeterminado |
sample_value |
No |
String |
Valor de ejemplo |
required |
No |
Integer |
Indica si el parámetro es obligatorio.
El valor de este parámetro es 1 si Location se establece en PATH y 2 si Location se establece en otro valor. |
valid_enable |
No |
Integer |
Indica si la comprobación de validez está activada.
El valor predeterminado es 2. |
remark |
No |
String |
Descripción del parámetro La descripción no puede superar los 255 caracteres. |
enumerations |
No |
String |
Valor enumerado |
min_num |
No |
Integer |
Valor mínimo, que es válido cuando el tipo de parámetro es NUMBER |
max_num |
No |
Integer |
Valor máximo, que es válido cuando el tipo de parámetro es NUMBER |
min_size |
No |
Integer |
Longitud mínima |
max_size |
No |
Integer |
Longitud máxima |
regular |
No |
String |
Regla de verificación regular (actualmente no soportada) |
json_schema |
No |
String |
Regla de verificación de JSON (actualmente no soportada) |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre del parámetro El nombre de un parámetro consta de 1 a 32 caracteres, comenzando por una letra. Solo se permiten letras, dígitos, puntos (.), guiones (-) y guiones bajos (_). |
location |
Sí |
String |
Ubicación del parámetro, que puede ser:
|
origin |
Sí |
String |
Tipo de parámetro, que puede ser:
|
value |
Sí |
String |
Valor del parámetro, que no puede contener más de 255 caracteres Si origin se establece en REQUEST, el valor es el nombre del parámetro en req_params. Si origin se establece en CONSTANT, el valor es el valor real del parámetro backend. Si origin se establece en SYSTEM el valor es el nombre del parámetro de gateway. |
remark |
No |
String |
Descripción del parámetro La descripción no puede superar los 255 caracteres. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre de backend Un nombre de back-nd consta de 3 a 64 caracteres, comenzando con una letra. Solo se permiten letras, dígitos y guiones bajos (_). |
url_domain |
Requerido cuando no se utiliza ningún canal VPC. |
String |
Punto de conexión del backend de la política Un punto de conexión consiste en un nombre de dominio o dirección IP y un número de puerto, con no más de 255 caracteres. Debe estar en el formato "Domain name:Port number", por ejemplo, apig.example.com:7443. De forma predeterminada, el número de puerto sería 443 para HTTPS o 80 para HTTP si no se especifica. Un punto de conexión puede contener variables de entorno, cada una comenzando con una letra y constando de 3 a 32 caracteres. Solo se permiten letras, dígitos, guiones (-) y guiones bajos (_) en las variables de entorno. |
req_protocol |
Sí |
String |
Protocolo de solicitud, que puede ser:
|
req_method |
Sí |
String |
Método de solicitud, que puede ser:
|
req_uri |
Sí |
String |
Dirección de solicitud Una dirección de solicitud puede contener hasta 512 caracteres y debe cumplir con las especificaciones de URI. La dirección de solicitud puede contener variables de entorno, cada una comenzando con una letra y constando de 3 a 32 caracteres. Solo se permiten letras, dígitos, guiones (-) y guiones bajos (_) en las variables de entorno.
NOTA:
El valor de este parámetro debe cumplir con las especificaciones de URI. |
timeout |
No |
Integer |
Tiempo de espera para que APIG solicite el servicio de backend. Alcance: 1–60,000. Unidad: ms. |
vpc_status |
No |
Integer |
Indica si se debe utilizar un canal de VPC. El valor puede ser:
|
vpc_info |
Requerido cuando vpc_status se establece en 1. |
Dictionary |
Detalles del canal de VPC |
effect_mode |
Sí |
String |
Modo efectivo de la política de backend
|
conditions |
Sí |
Dictionary |
Lista de condiciones de política |
backend_params |
No |
Dictionary |
Lista de parámetros de backend |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre de backend Un nombre de back-nd consta de 3 a 64 caracteres, comenzando con una letra. Solo se permiten letras, dígitos y guiones bajos (_). |
result_content |
No |
String |
Respuesta de simulacro |
effect_mode |
Sí |
String |
Modo efectivo de la política de backend
|
conditions |
Sí |
Dictionary |
Lista de condiciones de política |
backend_params |
No |
Dictionary |
Lista de parámetros de backend |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre de backend Un nombre de back-nd consta de 3 a 64 caracteres, comenzando con una letra. Solo se permiten letras, dígitos y guiones bajos (_). |
function_urn |
Sí |
String |
Función URN |
invocation_type |
Sí |
String |
Modo de invocación. Opciones:
|
timeout |
No |
Integer |
Duración del tiempo de espera de APIG para solicitar FunctionGraph. Alcance: 1–60,000. Unidad: ms. |
version |
No |
String |
Versión de la función Se permite un máximo de 64 caracteres. |
effect_mode |
Sí |
String |
Modo efectivo de la política de backend
|
conditions |
Sí |
Dictionary |
Lista de condiciones de política |
backend_params |
No |
Dictionary |
Lista de parámetros de backend |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
condition_type |
Obligatorio si el tipo de política es param. |
String |
Tipo de condición. Opciones:
|
condition_value |
Sí |
String |
Valor de la condición |
condition_origin |
Sí |
String |
Fuente de condición. Opciones:
|
req_param_name |
Mandatory if the policy type is param. |
String |
Nombre del parámetro de entrada |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
app_code_auth_type |
No |
String |
Indica si la autenticación AppCode está habilitada. Este parámetro solo es válido cuando auth_type está establecido en App. El valor predeterminado es DISABLE.
|
Ejemplo de solicitud:
{ "auth_type": "app", "auth_opt": { "app_code_auth_type": "HEADER" }, "backend_api": { "req_method": "get", "req_protocol": "http", "req_uri": "/test", "timeout": 1000, "url_domain": "xxxxxxxxxxx" }, "backend_params": [ { "location": "query", "name": "project_id", "origin": "request", "value": "project_id" }, { "location": "query", "name": "city", "origin": "request", "value": "city" } ], "backend_type": "http", "group_id": "f71f69876f90456ca6fd18ed012fdc11", "name": "test", "req_method": "get", "req_params": [ { "location": "path", "name": "project_id", "required": 1, "type": "string" }, { "location": "query", "name": "city", "required": 2, "type": "string" } ], "req_uri": "/test/{project_id}", "tags": ["APIG-SN-test", "test"], "type": 1, "result_normal_sample": "hello world!" }
Respuesta
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de API |
name |
String |
Nombre de la API |
group_id |
String |
ID del grupo de API al que pertenece la API |
group_name |
String |
Nombre del grupo de API al que pertenece la API |
status |
Integer |
Estado de la API |
type |
Integer |
Tipo de API |
version |
String |
Versión de la API |
req_protocol |
String |
Solicitud de protocolo |
req_method |
String |
Método de solicitud |
req_uri |
String |
Dirección de acceso |
auth_type |
String |
Modo de autenticación de seguridad |
auth_opt |
Object |
Parámetro del modo de autenticación de seguridad |
match_mode |
String |
Modo de coincidencia |
register_time |
Timestamp |
Hora en que se creó la API |
update_time |
Timestamp |
Hora de la última modificación de la API |
remark |
String |
Descripción de la API |
bakend_type |
String |
Tipo de backend |
arrange_necessary |
Integer |
Indica si se requiere orquestación. |
tag |
String |
Etiqueta de nombre de servicio, que debe descartarse |
tags |
[]String |
Etiquetas de API |
cors |
Bool |
Indica si se admite CORS. |
body_remark |
String |
Descripción del cuerpo de solicitud de API, que puede ser un cuerpo de solicitud de ejemplo, tipo de medio o información de parámetro |
result_normal_sample |
String |
Ejemplo de respuesta para una solicitud correcta |
result_failure_sample |
String |
Ejemplo de respuesta para una solicitud fallida |
response_id |
String |
ID de la respuesta del gateway |
backend_api |
Dictionary |
Detalles de backend de Web. |
mock_info |
Dictionary |
Detalles de backend de Mock |
func_info |
Dictionary |
Detalles del backend de FunctionGraph |
req_params |
Dictionary |
Lista de parámetros de solicitud |
backend_params |
Dictionary |
Lista de parámetros de backend |
policy_https |
Dictionary |
Lista de políticas de backend de web |
policy_mocks |
Dictionary |
Lista de políticas de backend de Mock |
policy_functions |
Dictionary |
Lista de políticas de backend de FunctionGraph |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de backend |
status |
Integer |
Estado de backend de web |
url_domain |
String |
Punto de conexión de backend |
version |
String |
Versión de backend de web |
req_protocol |
String |
Solicitud de protocolo |
req_method |
String |
Método de solicitud |
req_uri |
String |
Dirección de acceso |
timeout |
Integer |
Tiempo de espera en milisegundos |
register_time |
Timestamp |
Tiempo de creación |
update_time |
Timestamp |
Hora en la que se modificó por última vez el backend de web |
remark |
String |
Descripción del backend de web |
vpc_status |
String |
Indica si se debe utilizar un canal de VPC. |
vpc_info |
String |
Información del canal de VPC |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de backend de simulacro |
status |
Integer |
Estado de backend de simulacro |
version |
String |
Versión de backend de simulacro |
result_content |
String |
Respuesta de simulacro |
register_time |
Timestamp |
Tiempo de creación |
update_time |
Timestamp |
Hora en la que el backend de simulacro fue modificado por última vez |
remark |
String |
Descripción del backend de simulacro |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de la función |
status |
Integer |
Estado de la función |
version |
String |
Versión de la función |
function_urn |
String |
Función URN |
invocation_type |
String |
Modo de invocación, que puede ser async o sync |
register_time |
Timestamp |
Tiempo de creación |
update_time |
Timestamp |
Hora de la última actualización de la función |
timeout |
Integer |
Tiempo de espera en milisegundos |
remark |
String |
Descripción de la función |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID del parámetro |
name |
String |
Nombre del parámetro |
type |
String |
Tipo de parámetro |
location |
String |
Ubicación del parámetro |
default_value |
String |
Valor predeterminado |
sample_value |
String |
Valor de ejemplo |
required |
Integer |
Indica si el parámetro es obligatorio. |
valid_enable |
Integer |
Indica si la comprobación de validez está activada. |
remark |
String |
Descripción del parámetro |
enumerations |
String |
Valor enumerado |
min_num |
Integer |
Valor mínimo, que es válido cuando el tipo de parámetro es NUMBER |
max_num |
Integer |
Valor máximo, que es válido cuando el tipo de parámetro es NUMBER |
min_size |
Integer |
Longitud mínima |
max_size |
Integer |
Longitud máxima |
regular |
String |
Regla de verificación regular (actualmente no soportada) |
json_schema |
String |
Regla de verificación de JSON (actualmente no soportada) |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID del parámetro |
req_param_id |
String |
ID del parámetro de solicitud al que se asigna el parámetro de backend |
name |
String |
Nombre del parámetro |
location |
String |
Ubicación del parámetro |
origin |
String |
Tipo de parámetro |
value |
String |
Valor del parámetro |
remark |
String |
Descripción del parámetro de backend |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de política de backend |
name |
String |
Nombre de backend |
url_domain |
String |
Punto de conexión del backend de la política |
req_protocol |
String |
Solicitud de protocolo |
req_method |
String |
Método de solicitud |
req_uri |
String |
Dirección de acceso |
timeout |
Integer |
Tiempo de espera en milisegundos |
vpc_status |
String |
Indica si se debe utilizar un canal de VPC. |
vpc_info |
String |
Información del canal de VPC |
effect_mode |
String |
Modo efectivo de la política de backend |
conditions |
Dictionary |
Lista de condiciones de política |
backend_params |
Dictionary |
Lista de parámetros de backend |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de política de backend |
name |
String |
Nombre de backend |
result_content |
String |
Respuesta de simulacro |
effect_mode |
String |
Modo efectivo de la política de backend |
conditions |
Dictionary |
Lista de condiciones de política |
backend_params |
Dictionary |
Lista de parámetros de backend |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de política de backend |
name |
String |
Nombre de backend |
version |
String |
Versión de la función |
function_urn |
String |
Función URN |
invocation_type |
String |
Modo de invocación, que puede ser async o sync |
timeout |
Integer |
Tiempo de espera en milisegundos |
effect_mode |
String |
Modo efectivo de la política de backend |
conditions |
Dictionary |
Lista de condiciones de política |
backend_params |
Dictionary |
Lista de parámetros de backend |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de condición de política de backend |
condition_type |
String |
Tipo de condición |
condition_value |
String |
Valor de la condición |
condition_origin |
String |
Origen de la condición |
req_param_name |
String |
Nombre del parámetro de entrada |
req_param_id |
String |
ID de parámetro de entrada |
req_param_location |
String |
Ubicación del parámetro de entrada |
Parámetro |
Tipo |
Descripción |
---|---|---|
app_code_auth_type |
String |
Indica si la autenticación AppCode está habilitada. |
Ejemplo de respuesta:
{ "name": "test", "type": 1, "version": "V0.0.1", "req_protocol": "HTTPS", "req_method": "GET", "req_uri": "/test/{tenant_id}", "auth_type": "APP", "auth_opt": { "app_code_auth_type": "HEADER" }, "tags": ["APIG-SN-test", "test"], "cors": false, "match_mode": "NORMAL", "backend_type": "HTTP", "group_id": "f71f69876f90456ca6fd18ed012fdc11", "result_normal_sample": "hello world!", "id": "81efcfd94b8747a0b21e8c04144a4e8c", "status": 1, "arrange_necessary": 2, "register_time": "2018-08-15T03:41:11.0239936Z", "update_time": "2018-08-15T03:41:11.0239936Z", "group_name": "group0002", "backend_api": { "url_domain": "xxxxxxxxxxx", "req_protocol": "HTTP", "req_method": "GET", "req_uri": "/test", "timeout": 1000, "vpc_status": 2, "id": "3442ffd031814e3a8f133a9f1ea08453", "status": 1, "register_time": "2018-08-15T03:41:11.1019236Z", "update_time": "2018-08-15T03:41:11.1019236Z" }, "req_params": [ { "name": "tenant_id", "type": "STRING", "location": "PATH", "required": 1, "valid_enable": 2, "id": "593c5560e0924e00af08fb458f850ecb" }, { "name": "city", "type": "STRING", "location": "QUERY", "required": 2, "valid_enable": 2, "id": "e0b91bc81ae54f8ea850848d782d6e1e" } ], "backend_params": [ { "name": "tenant_id", "location": "QUERY", "origin": "REQUEST", "value": "tenant_id", "id": "44e03de2351e43a8b18ba9ec1e71d2e9", "req_param_id": "593c5560e0924e00af08fb458f850ecb" }, { "name": "city", "location": "QUERY", "origin": "REQUEST", "value": "city", "id": "b60fbcb5b86f4f5c8705c445b9bd6325", "req_param_id": "e0b91bc81ae54f8ea850848d782d6e1e" } ], "policy_https": [{ "conditions": [{ "id": "44e03de2351e43a8b18ba9ec1e71d2e9", "condition_type": "pattern", "condition_value": "^[0-9]$", "condition_origin": "param", "req_param_name": "project_id", "req_param_id": "b60fbcb5b86f4f5c8705c445b9sda325", "req_param_location": "PATH" }], "backend_params": [{ "name": "project_id", "value": "bbbb", "location": "QUERY", "origin": "REQUEST", "id": "44e03de2351e43a8b18ba9ec1e71d2e8", "req_param_id": "593c5560e0924e00af08fb458f850ecb" }], "effect_mode": "ANY", "id": "44e03de2351e43a8b18ba9ec1e71d2e8", "name": "policy001", "req_method": "GET", "req_protocol": "http", "req_uri": "/test/policy", "timeout": 10000, "url_domain": "xxxxxxxxxxx", "vpc_status": 2 }] }
Códigos de estado
Código de estado |
Descripción |
---|---|
201 |
Created |
400 |
Bad Request |
401 |
Unauthorized |
403 |
Forbidden |
404 |
Not Found |
500 |
Server Internal Error |