Red de conocimiento del abogados - Ley de patentes - ¿La interfaz RAP es de código abierto?

¿La interfaz RAP es de código abierto?

Con el desarrollo de la tecnología web, las arquitecturas de separación de front-end y back-end se han vuelto cada vez más populares. La separación del front-end y el back-end permite que el back-end se centre en el procesamiento de datos y en la definición de las interfaces requeridas por el front-end. El front-end es responsable de la visualización y la interacción de los datos, lo que refina en gran medida las responsabilidades. de los desarrolladores y mejora la eficiencia del desarrollo, pero al mismo tiempo también trae algunos problemas:

Para los ingenieros de front-end, la mayoría de los documentos de interfaz proporcionados por el back-end no son estándar. wiki, algunos usan documentos de Word y algunos incluso usan software de chat instantáneo para comunicarse. La interfaz de back-end no es tan buena como la de front-end. Los problemas que se encuentran a menudo son que la interfaz agrega parámetros por razones desconocidas. los nombres de los parámetros cambian y los parámetros se eliminan. Los ingenieros de back-end siempre necesitan escribir documentos complicados al conectar interfaces y llevar mucho tiempo mantener los documentos de la interfaz.

La función de desarrollo de front-end no se completa antes de que se complete la función de back-end. Debido a que la función de front-end depende de los datos de back-end, el trabajo no se puede realizar sin problemas. Para resolver este problema, algunos ingenieros de front-end inyectan json en el código y algunos ingenieros de back-end construyen temporalmente un servidor de datos de prueba. En este caso, la eficiencia del trabajo y la calidad del código seguramente se verán afectadas y los campos no se pueden modificar. actualizado oportunamente.

No se puede garantizar la exactitud de los datos de la interfaz. El front-end llama a los datos de la interfaz de back-end para representarlos en la vista. Una vez que los datos son incorrectos, causará problemas en la vista y la interacción. Se vuelve cada vez más importante garantizar la exactitud de los datos de la interfaz de back-end. Las pruebas automatizadas de interfaz se utilizan para resolver este problema, pero el marco de prueba de interfaz tradicional es muy costoso de usar. Muchos equipos usan la comparación visual, lo cual es muy ineficiente.

Investigación de productos relacionados

Estábamos ansiosos por tener un producto que pudiera cubrir nuestras necesidades, así que comenzamos a buscar productos similares en el mercado. Después de un tiempo de análisis, finalmente lo encontramos. Encontré varias comparaciones. Productos representativos Rap, Nei, Easy-Mock. Al mismo tiempo, hemos enumerado algunas características clave de acuerdo con nuestras propias demandas:

Haga clic para ingresar la descripción de la imagen

Nei es un producto de la división front-end de NetEase y Es relativamente bueno entre estos productos. Bueno, nei se centra en servicios saas y no tiene una versión de código abierto. Internamente, Qunar definitivamente no colocará los datos confidenciales de la interfaz de la empresa en plataformas de terceros.

Rap es un producto lanzado por el equipo de Alimama MUX en 2013. Es el primer producto de este tipo en términos de tiempo. Rap es desarrollado por ingenieros de back-end basados ​​en Java. Si desea personalizar algunas funciones, necesita aprender Java, y todos en nuestro departamento no están familiarizados con Java. Por otro lado, Rap no tiene una función de prueba de interfaz y el backend utiliza otras herramientas (cartero, restlet) para probar la interfaz, lo que resultará en la imposibilidad de actualizar los documentos de la interfaz de manera oportuna.

Easy-mock es un producto producido por Dasouche Wireless Team. Easy-mock se posiciona como una simulación de datos de interfaz para resolver el problema de la dependencia del front-end de los datos de la interfaz de back-end. el servicio simulado es el mejor. Mejor. Easy-mock se centra en la simulación de datos front-end, pero no puede resolver los problemas existentes de Qunar.

Nei, el mayor problema con la plataforma de gestión de interfaz Rap es que no es fácil mantener la interfaz para devolver datos. El autor habló una vez con un ingeniero de backend que usó Rap. Dijo que cada vez que se define una interfaz de backend para devolver campos de datos, es necesario actualizar cientos de campos durante mucho tiempo. Nei, Rap se basa en mantener un método de esquema json para definir la estructura de datos de retorno de back-end. Suponemos que una interfaz tiene 100 campos. Si se basa en un esquema json, tendrá que mantener actualizaciones de más de 600. campos. Con una carga de trabajo tan grande, es probable que los ingenieros de back-end no tengan ninguna motivación para mantenerla.

Desafortunadamente, a estos excelentes productos les faltan algunas características clave que nos importan. Es posible que necesitemos realizar cambios relativamente grandes para satisfacer básicamente nuestras necesidades, y es probable que esta carga de trabajo supere un nuevo desarrollo.

Entonces comenzamos a desarrollar de forma independiente una nueva plataforma de administración de interfaz. Esperamos que pueda proporcionar administración de documentos de interfaz, simulación de datos de interfaz (Mock), depuración de interfaz, pruebas automatizadas y otras funciones para hacer el trabajo relacionado con el front-end y el back-end. interfaces más eficientes. Este es el origen de la plataforma de administración de interfaz YApi. Hablemos brevemente sobre cómo YApi implementa las funciones anteriores.

Solución YApi

1. ***Mantenga una definición de interfaz y conecte los extremos frontal y posterior

Mire la imagen a continuación, el proceso de desarrollo de la interfaz en el back-end El desarrollo de la interfaz y las pruebas de la interfaz son enlaces indispensables, pero la documentación está aislada porque no está vinculada al desarrollo y la prueba de la interfaz. Mantener documentos que les resultan complicados y engorrosos en la parte posterior es algo que genera muy bajos ingresos. A nadie le gusta hacer algo con bajos rendimientos, por lo que la solución definitiva es aumentar los rendimientos. La solución se detalla a continuación.

Haga clic para ingresar la descripción de la imagen

Durante el proceso de desarrollo de la interfaz, el backend generalmente usa cartero y otras herramientas similares para probar la interfaz, y probar la interfaz es un proceso necesario en el proceso de desarrollo. Si se cambian los parámetros, todos definitivamente actualizarán los campos y probarán las interfaces en herramientas como cartero. A partir de esto se puede imaginar que si hay una herramienta que se puede usar no solo para probar la interfaz, sino también como una herramienta de documentación de la interfaz para conectar la documentación de la interfaz y las pruebas de la interfaz, este problema se resolverá. La solución YApi consiste en conectar documentos y pruebas de interfaz a través de una única fuente de datos. Si hay cambios, debido a que los cambios se realizan en una única fuente de datos, no habrá retrasos en las actualizaciones ni problemas inoportunos.

2. Solución de servidor simulado front-end

El servicio simulado de datos es un problema muy problemático en la etapa inicial de desarrollo. En la mayoría de los casos, los parámetros de solicitud de la interfaz y los datos devueltos son estipulados por el backend. Antes de que se complete la interfaz del backend, la interfaz es un agujero negro para el frontend. La definición inicial de la interfaz puede ser muy diferente de la interfaz real creada por el backend. el backend. Gran diferencia. En este momento, se necesita una herramienta que no solo pueda simular la situación de la interfaz real, sino que también pueda asociar documentos de interfaz durante el proceso de desarrollo de back-end, y el desarrollador de front-end puede ajustar la definición de la interfaz en cualquier momento. puede ser notificado de la información del cambio.

En la plataforma YApi, el front-end y el back-end pueden generar los datos de simulación requeridos siempre que mantengan los datos de respuesta definidos por la interfaz. El siguiente código define la plantilla de datos generada:

p>

{

"errcode": 0,

"errmsg": "@string",

"datos": {

"tipo":" @pick(1, 2, 3)",

"lista|1-10": [{

"uid": "@ id",

"username": "@name"

}]

}

} puede generar los siguientes datos de simulación:

{

"errcode": 0,

"errmsg": "^*!SF)R",

"datos ": {

"tipo": 2,

"lista": [

{

"uid": "370000200707276255" ,

" nombre de usuario": "Ruth Clark"

},

{

"uid": "650000200211185728",

"username": "Anthony Martin"

},

{

"uid": "370000199201143855",

"username": "Laura Rodríguez "

},

{

"uid": "610000198704072775",

" nombre de usuario": "Anthony Perez"

}

]

}

}Las soluciones simuladas de datos anteriores inevitablemente afectarían el código fuente del proyecto Yapi utiliza una solución de proxy de servidor, que solo necesita configurar el proxy inverso del servidor en su máquina de desarrollo. Puede obtener todos los datos simulados sin modificar una sola línea del código fuente del proyecto.

Las herramientas simuladas básicas ya pueden satisfacer la mayoría de las necesidades, pero algunos escenarios complejos no se pueden realizar. Por ejemplo: cuando creo una página de lista de datos, necesito probar el rendimiento de la interfaz de usuario de un determinado campo con varias longitudes y el rendimiento de la interfaz de usuario cuando los datos están vacíos. YApi proporciona funcionalidad para expectativas y scripts personalizados. Este artículo presenta principalmente la función de script personalizado. Para conocer las funciones esperadas, consulte la documentación de la plataforma yapi.

Los scripts personalizados pueden utilizar scripts js para personalizar los datos devueltos en función de los parámetros de solicitud y la información de las cookies. Supongamos que hay un escenario en el que quiero controlar la visualización de datos de la página de lista a través de la cookie "_type". Si _type es un error, la lista mostrará un mensaje de error de excepción; si _type está vacío, la lista se mostrará como vacía; Esto se puede lograr usando el siguiente código: if(cookie._type == 'error'){

mockJson.errcode = 400;}if(cookie._type == 'empty'){

mockJson.data.list = [];}

3. Pruebas automatizadas

Una vez completado el desarrollo de la interfaz, habrá muchas iteraciones posteriores cada vez que se complete el código fuente. Se modifica el código. Se necesitan muchas pruebas para asegurarse de que la interfaz sea correcta. El juicio manual definitivamente no es bueno. La mejor manera es automatizarlo, pero las pruebas automatizadas son algo muy costoso. Requiere que el personal de back-end y el personal de control de calidad aprendan marcos relevantes y escriban mucho código.

YApi simplifica este proceso. Basado en una interfaz visual, incluso si no comprende el desarrollo de programas, solo necesita configurar los parámetros relevantes y las declaraciones de aserción para implementar pruebas automatizadas, lo cual es muy fácil de usar.

Además de las funciones básicas, YApi también proporciona potentes funciones de pre-script y expresión visual. El pre-script incluye dos partes: script de procesamiento de parámetros de solicitud y script de procesamiento de datos de respuesta. Cambie los parámetros de la solicitud y los datos de respuesta devueltos mediante scripts js personalizados. Sus escenarios de uso son los siguientes:

Los parámetros de solicitud de interfaz deben cifrarse y la respuesta descifrada

Los parámetros de solicitud de interfaz deben agregarse con un token de cálculo

Expresión visual es principalmente para comodidad de los usuarios. Genere parámetros utilizados para pruebas automatizadas y haga referencia rápidamente a valores de parámetros dependientes a través de una selección de árbol. Una vez configuradas todas las interfaces que deben probarse, haga clic en Iniciar prueba y todas las interfaces se probarán en el orden especificado. Una vez completada la prueba, podrá ver el informe de la prueba.

4. Mecanismo de complemento

Lo más poderoso de YApi es su mecanismo de complemento. Cada línea de negocio de nuestro Qunar tiene diferentes necesidades a través de los ganchos reservados por YApi. Podemos desarrollar Se utilizan diferentes complementos para resolver el problema. Por ejemplo, nuestro inicio de sesión qsso existente y la importación de datos swagger se implementan a través del mecanismo de complemento. Nuestro equipo discutió recientemente con el departamento comercial el uso de complementos. implementar funciones de pruebas de estrés. En general, YApi se basa en un mecanismo de complemento, que no solo satisface las diversas necesidades del producto, sino que también garantiza que el núcleo sea fácil de usar y lo suficientemente simple.

5. Código abierto y fácil de implementar

Para ayudar a más desarrolladores y mejorar la eficiencia del trabajo de todos, YApi no solo es de código abierto para github, sino que también proporciona una herramienta cli para Facilitar el despliegue de los desarrolladores. Con la solución de implementación visual proporcionada por yapi-cli, incluso si no tiene ningún conocimiento sobre nodejs o mongodb, puede implementarla fácilmente con un solo clic.

Postscript

YApi se ha utilizado ampliamente en Qunar, gestionando 200 interfaces de proyectos, con decenas de miles de solicitudes simuladas cada semana. Después del código abierto, cada vez más empresas y equipos utilizan YApi, y el número de estrellas de github ha aumentado a 1,3k. YApi seguirá centrándose en funciones de gestión de interfaces en el futuro, lo que convertirá a YApi en una buena ayuda para los desarrolladores.