Resumen de conocimientos de la interfaz API y caso de solicitud de interfaz de detalles del producto de la plataforma de datos de comercio electrónico

La interfaz de programación de aplicaciones (API) es una convención que proporciona capacidades de salida empresarial específicas y conecta diferentes sistemas. Esto incluye los puntos de interacción entre sistemas externos y sistemas que brindan servicios (sistemas mid-end y back-end) o entre diferentes sistemas back-end. Incluyendo interfaces externas, interfaces internas e interfaces internas se incluyen: interfaces de servicio de capa superior e interfaces de servicio de capa inferior e interfaces de pares.

Si no quiere que los jefes técnicos lo consideren un portero que no entiende nada, es necesario tener conocimientos claros sobre las interfaces.

Las interfaces web comunes son las interfaces de protocolo http/https, que se utilizan principalmente para llamadas a sistemas externos o sistemas front-end. Debido a que dichas direcciones de interfaz están expuestas al exterior, la seguridad de la interfaz debe verificarse en alto grado. También existe una solución de interfaz de llamada entre sistemas basada en RPC de código abierto. Este tipo de interfaz se utiliza principalmente para llamadas mutuas entre sistemas en la intranet de grandes empresas. Este tipo de interfaz tiene capacidades de gestión de servicios más sólidas y una velocidad de respuesta de interfaz más rápida. . El siguiente contenido utiliza la interfaz http como ejemplo para discutir.


 

1. Tipo de método de solicitud de interfaz

Los métodos comunes de solicitud http incluyen: obtener (verificar), publicar (agregar), además de poner (cambiar), eliminar (eliminar), etc. El tipo de interfaz lo determina la empresa. Por ejemplo, cuando abre Taobao, el contenido de la página de inicio que se muestra debe usar la interfaz de obtención para obtener información de la página. Si desea realizar un pedido cuando le gusta un producto y agregar su dirección de cosecha, utiliza la interfaz de publicación. Estos dos son también los dos tipos de interfaz más comunes.

1) obtener interfaz de tipo

Formato: el parámetro del número de solicitud se escribe después de la URL y se conecta con "?". Varios parámetros se conectan con "&".

Escenario: la interfaz de obtención se utiliza para obtener información y se utiliza principalmente para consultar datos, como visualización de lista de menú, visualización de búsqueda, consulta de pedido, consulta de cupón, etc. Se utiliza cuando otros sistemas necesitan devolver datos. Generalmente, la cantidad de datos solicitados es pequeña y la velocidad de retorno es rápida, pero la interfaz está expuesta al exterior, por lo que existe un cierto riesgo.

2) interfaz de publicación

Descripción: envíe datos (como enviar formularios, cargar archivos) a la ubicación de recursos especificada para realizar una solicitud. Las solicitudes de publicación pueden conducir a la creación de nuevos recursos.

Escenario: funciones como registro, carga, publicación, etc. requieren una gran cantidad de datos y alta seguridad.

Otros tipos de interfaz como poner (cambiar), eliminar (eliminar), parchear, etc. tienen índices de uso ligeramente más bajos y no se describirán aquí.

2. Tipo de mecanismo de respuesta de interfaz

Se distingue del retorno y se divide en interfaz síncrona e interfaz asíncrona.

1) Interacción sincrónica

Significa que al enviar una solicitud, debe esperar la devolución antes de poder enviar la siguiente solicitud.Existe un proceso de espera;

Por ejemplo, en la interfaz de inicio de sesión, al realizar una operación de inicio de sesión, el nombre de usuario, la contraseña, el token y otros campos se cifran y luego se verifican a través de la interfaz. El resultado de la verificación debe devolverse antes de que el inicio de sesión pueda ser exitoso.

2) Interacción asincrónica

Significa enviar una solicitud sin esperar devolución, puedes enviar la siguiente solicitud en cualquier momento, es decir, no hay necesidad de esperar.

Si un usuario solicita un cupón, solo necesita solicitar con éxito el comportamiento de recolección de cupones del usuario. Después de recibir la solicitud, el sistema de activos opera asincrónicamente al usuario para emitir cupones y ejecuta la emisión de cupones a través de un método asincrónico. La persona que llama no necesita esperar para el resultado de la llamada de cada solicitud.

Diferencia: uno requiere espera y el otro no, siempre que no afecte la experiencia del usuario, el desarrollo de nuestro proyecto generalmente da prioridad a los métodos de interacción asincrónica que no requieren espera.

¿En qué situaciones se recomienda utilizar la interacción sincrónica? Por ejemplo, el inicio de sesión de usuario, el sistema de transferencia bancaria, las operaciones de guardado de bases de datos, etc. utilizarán operaciones interactivas sincrónicas y, en otros casos, se utilizarán primero interacciones asincrónicas.

3. Tipo de interfaz de formulario de activación

1) Interfaz de distribución

Cuando un sistema genera nuevos datos, se distribuyen a otros sistemas (o a varios).

La idea central del sistema de gama media es la alta cohesión y el bajo acoplamiento, por lo que todavía existen muchos escenarios de uso para la interfaz de distribución. Por ejemplo, existe un sistema de canal principal para gestionar todos los datos del canal, y los datos del canal son información que otros sistemas, como los sistemas de productos y los sistemas de promoción, suelen utilizar. Por lo tanto, una vez que aparece un nuevo canal o se produce un cambio de canal, es necesario distribuirlo a todos los demás sistemas conectados para lograr soporte funcional para el canal más reciente.

2) Interfaz de suscripción

Un sistema llama a la interfaz de otros sistemas para la suscripción de datos cuando es necesario.

Por ejemplo, cuando el sistema de pedidos genera un pedido, es posible que muchos sistemas externos necesiten obtener información sobre el estado del pedido de manera oportuna. El sistema de pedidos no sabe a qué sistemas quiere distribuir. En este momento, el pedido generalmente se envía a una cola de mensajes específica, como KFK. Otros sistemas que necesitan realizar un seguimiento del estado del pedido pueden obtener la información de finalización del pedido. inmediatamente después de suscribirse al mensaje de KFK. Continuar activa la siguiente acción.

4. Composición básica de otras interfaces API

En un negocio determinado, después de determinar el tipo de solicitud de interfaz, el mecanismo de respuesta, etc., tome la interfaz de detalles del producto de la plataforma de datos de comercio electrónico como ejemplo para comprender los otros componentes de la interfaz.

1) escenario de aplicación

Como sugiere el nombre, esta interfaz es adecuada para escenarios que aclaran el propósito comercial de la interfaz.

  • Recomendación de producto: recomiende productos relacionados a los usuarios analizando el historial de compras y los datos de comportamiento de los usuarios para mejorar la tasa de conversión de ventas.
  • Análisis de precios: desarrolle estrategias de precios razonables analizando los precios de los productos de la competencia y de la misma industria.
  • Gestión de inventario: la selección de productos y la gestión de inventario se pueden llevar a cabo en función de las ventas de bienes para garantizar un suministro suficiente de bienes y reducir riesgos como la acumulación de inventario.
  • Retrato del usuario: al analizar el historial de compras y los datos de comportamiento del usuario, se revelan sus intereses, preferencias y hábitos de consumo, lo que proporciona una base para un marketing de precisión.
  • Actividades de marketing: a partir de los datos del producto, se pueden desarrollar planes de promoción adecuados para atraer a los usuarios a la compra y aumentar las ventas y la fidelidad de los clientes.
  • Servicio al cliente: utilice datos de productos para realizar análisis de comentarios de los clientes, comprender las preguntas y opiniones de los usuarios sobre los productos, responder a las necesidades y problemas de los usuarios de manera oportuna y mejorar la satisfacción del cliente.

Las personas que utilizan interfaces API se dividen en las siguientes categorías:

Desarrolladores: las interfaces API brindan una manera conveniente para que los desarrolladores aprovechen la funcionalidad de otros sistemas o plataformas para crear sus propias aplicaciones o sitios web.

Analista de datos: los analistas de datos necesitan recopilar datos de múltiples plataformas o sistemas, y las interfaces API les brindan una forma de obtener datos rápidamente.

Usuarios comerciales: los usuarios comerciales pueden utilizar interfaces API para integrar información de transacciones en diferentes plataformas para monitorear y administrar el inventario de productos, las ventas de mercado y otra información.

Administrador del sistema: los administradores del sistema pueden utilizar interfaces API para monitorear y administrar el estado de ejecución del sistema para que los problemas puedan descubrirse y resolverse de manera oportuna.

2) Entrada y salida

parámetros de respuesta

nombre tipo debe Valor de ejemplo describir

artículo

artículo[] 1 Datos de detalles del bebé

núm_id

Empezando 1 520813250866 identificación del bebé

título

Cadena 1 Cuchillo plegable de madera de tres hojas que pasa el control de seguridad, mini llavero creativo, cuchillo para llaves, sable, cuchillo multifuncional portátil, envío gratis título de bebé

desc_short

Cadena 0 Descripción del Producto

precio de promoción

En t 0 Precio especial

precio

Flotar 1 25,8 precio

precio total

Flotar 0 0

precio_sugerente

Flotar 0 0

precio_original

Cadena 0 25,80 precio original

mella

Cadena 0 Happy Shopping Inn Apodo del comerciante

número

En t 0 3836 en stock

mi_num

En t 0 0 Cantidad mínima de compra

URL_detalle

Cadena 0 http://item.taobao.com/item.htm?id=520813250866 enlace de bebé

URL_imagen

Cadena 1 //gd2.alicdn.com/imgextra/i4/2596264565/TB2p30elFXXXXXQXpXXXXXXXXXX_!!2596264565.jpg fotos de bebe

marca

Cadena 0 árbol de tres hojas nombre de la marca

ID de marca

En t 0 8879363 Identificación de marca

ID de gato raíz

En t 0 50013886 ID de categoría de nivel superior

cid

En t 1 50014822

migajas

Mezcla 0 [] Menú de Navegación

hora_creada

Cadena 0

hora_modificada

Cadena 0

eliminar_hora

Cadena 0

desc

Cadena 0 Detalles de producto

desc_img

Mezcla 0 [] Imágenes de detalles del producto

item_imgs

Mezcla 0 item_imgs[] imagen del producto

Peso del artículo

Cadena 0

tamaño_artículo

Cadena 0

ubicación

Cadena 0 Lugar de envío

honorario expreso

Flotar 0 0.00 Tarifas de mensajería

tarifa_ems

Flotar 0 Costo del ccsme

tarifa_postal

Flotar 0 Costos de logística

embarcar hacia

Cadena 0 Envie a

tiene_descuento

Booleano 0 FALSO ¿Hay algún descuento?

video

video[] 0 Vídeo del producto

es_virtual

Cadena 0

es_promoción

Booleano 0 FALSO Promoción o no

nombre_accesorios

Cadena 0 1627207:1347647754: Clasificación de colores: Rectangular con abridor de botellas + tarjeta de cuchillo para herramientas + cadena; 1627207: 1347647753: Clasificación de colores: Ovalado con abridor de botellas + tarjeta de cuchillo para herramientas + cadena; Nombre del atributo del producto. El formato es pid1:vid1:nombre1:valor1;pid1:vid2:nombre2:valor2.

prop_imgs

prop_imgs[] 0 Lista de imágenes de atributos del producto

alias_propiedad

Cadena 0 20509:9974422:36;1627207:28326:rojo;20509:9975710:38;1627207:28326:rojo;20509:9981357:40;1627207:28326:rojo Alias ​​de valor de atributo de ventas. El formato es pid1:vid1:alias1;pid1:vid2:alia2.

accesorios

Mezcla 0 [{ "nombre": "Origen", "valor": "China" }] Atributos del producto

total_vendido

En t 0

artículos

artículos[] 0 Lista de información de especificaciones del producto

vendedor_id

En t 0 2844096782 ID del vendedor

ventas

En t 0 138 El volumen de ventas

id_tienda

En t 0 151372205 ID de tienda

lista de accesorios

Mezcla 0 {20509:9974422: Tamaño:36} Atributos del producto

seller_info

seller_info[] 1 卖家信息

tmall

Boolean 0 false 是否天猫

error

String 0 错误信息

warning

String 0 警告信息

url_log

Mix 0 []

favcount

Int 0 0

fanscount

Int 0 0

method

String 0 item_tmall:pget_item

promo_type

String 0

props_img

Mix 0 1627207:28326": "//img.alicdn.com/imgextra/i2/2844096782/O1CN01VrjpXt1zyCc9DvERE_!!2844096782.jpg 属性图片

shop_item

Mix 0 []

relate_items

Mix 0 []

 入参是接口请求所需要的变量参数,其中包括必填参数和非必填参数,非必填并非是可以忽略的。

3)错误码

接口请求并非每次都能成功,所以在接口开发时会对可能失败的情况进行错误码区分,在接口联调时可以根据返回的错误码快递定位问题。如果错误码不够全面,那在接口调用失败的时候,需要反复定位,降低开发效率。

错误码解释

状态代码(error_code) 状态信息 详细描述 是否收费
0000 success 接口调用成功并返回相关数据
2000 Search success but no result 接口访问成功,但是搜索没有结果
4000 Server internal error 服务器内部错误
4001 Network error 网络错误
4002 Target server error 目标服务器错误
4003 Param error 用户输入参数错误 忽略
4004 Account not found 用户帐号不存在 忽略
4005 Invalid authentication credentials 授权失败 忽略
4006 API stopped 您的当前API已停用 忽略
4007 Account stopped 您的账户已停用 忽略
4008 API rate limit exceeded 并发已达上限 忽略
4009 API maintenance API维护中 忽略
4010 API not found with these values API不存在 忽略
4012 Please add api first 请先添加api 忽略
4013 Number of calls exceeded 调用次数超限 忽略
4014 Missing url param 参数缺失 忽略
4015 Wrong pageToken 参数pageToken有误 忽略
4016 Insufficient balance 余额不足 忽略
4017 timeout error 请求超时
5000 unknown error 未知错误

 

五、接口安全性校验

接口完成业务逻辑开发后,接下来要考虑的就是安全性问题了,接口的安全性问题主要来源于几方面考虑:

1)请求来源是否合法?

即接口的伪装攻击,因为接口是对外的,在公网环境中,接口地址是暴露的,收到的请求有可能是恶意非法请求;如果真的是合法请求,也需要知道这个请求的来源,同时这个请求来源不能否认。这里引入“签名”的概念,以及签名的防伪装及抗否认性特性。

近些年各大企业强制使用https替换掉原有的http接口,正是因为https所使用的的证书安全性更高。

2)请求是否会被篡改,返回数据可能会被截取

因为接口是对外的,所以接收请求和返回数据的时候,是不可能使用明文方式传输的,否则一旦被恶意截取,会造成极大风险。所以请求数据及返回数据都是需要加密的,这样即使数据被截取,也不用泄露数据的内容。

3)如何防范接口的重放攻击,防重放攻击是什么呢?

就是把你的请求原封不动地多次发放,请求都会通过验证进入到正常逻辑中,会造成服务端接口拥堵并且会造成实际损失。

防重放一般需在请求参数加上 时间戳 + 随机数,通过时间戳确保接口是最新的请求,而随机数相同则可以认定为是重放攻击。

六、接口性能相关

如果是访问量比较大的接口,再上线前肯定需要进行压力测试。因为普通的开发自测和生产模拟是不能推算出高并发时候接口是否可正常运行。

1)TPS

Transaction Per Second 每秒系统处理的交易或事物的数量,衡量系统处理能力的重要指标。

2)RT

El tiempo de respuesta, el tiempo transcurrido desde el momento en que el cliente envía una solicitud hasta el final cuando el cliente recibe el resultado de la respuesta del servidor, incluye tres partes: tiempo de envío de la solicitud, tiempo de transmisión de la red y tiempo de procesamiento del servidor.

3) Rendimiento

Se refiere a la cantidad total de datos transmitidos en la red durante una prueba de rendimiento.

No hace falta decir que el tiempo de respuesta del usuario es demasiado largo y perjudica la experiencia del usuario. Incluso en un período de alta concurrencia, el tiempo de respuesta del usuario aún debe controlarse al mínimo, generalmente no más de 5 segundos;

TPS es un indicador de alta concurrencia. Las interfaces que generalmente brindan servicios deben tener en cuenta la cantidad de concurrencias en las situaciones más extremas. Estas cifras generalmente provienen de la planificación de actividades operativas y estimaciones de tendencias de datos anteriores. En base a esto, puede asegurarse que usted La interfaz puede admitir la mayor cantidad de concurrencias y generalmente se utilizan pruebas de estrés para verificarlas. Si en circunstancias normales los tps pueden llegar a 2000 durante la prueba de esfuerzo y la interfaz es normal, se puede garantizar la concurrencia real de 2000.

7. ¿Qué pruebas hay que hacer en la interfaz?

La prueba de interfaz es en realidad una prueba de caja blanca: la página de inicio debe aclarar la capacidad de salida del sistema y si la cobertura del servicio satisface las necesidades. Utilice la lógica empresarial para impulsar los parámetros de la interfaz.

1) Si los parámetros de entrada no cumplen con los requisitos, se requieren códigos de error claros, mensajes de error y registros para facilitar la reproducción y ubicación del problema.

2) Si hay otro enlace a la lógica de procesamiento de parámetros, también es necesario verificarlo. Por ejemplo, si compra una membresía de NetEase Cloud Music, el sistema de equidad ponderará el pedido después de que se genere el pedido. Después de la ponderación Si tiene éxito, se notificará al usuario mediante un mensaje de texto, pero la interfaz de ponderación y la información del pedido aparecerán. No hay un número de teléfono móvil del usuario, por lo que, aunque no hay un número de teléfono móvil del usuario en el parámetro de entrada, es necesario consultar el número de teléfono móvil. en función del nombre de usuario del usuario y realizar la operación de envío de mensajes de texto.

Otros objetivos de verificación, como: si la cobertura del código cumple con los requisitos, si los indicadores de rendimiento cumplen con los requisitos y si los indicadores de seguridad cumplen con los requisitos, son indicadores de prueba más profesionales.

Supongo que te gusta

Origin blog.csdn.net/APItesterCris/article/details/133081908
Recomendado
Clasificación