La correcta API JSON o JSON RPC

¿Qué es la API JSON?


Seguramente muchos en el saber.

JSON : formato de texto para el intercambio de datos JSON
API : interfaz de programación de aplicaciones API

Palabras clave aquí: interfaz de intercambio de datos.

A, entonces, ¿qué es JSON-RPC?



JSON : ya estamos informados.

RPC - llamada a procedimiento remoto RPC

Concluimos que JSON-RPC es: intercambio remoto de datos.

Seguramente este intercambio de datos ocurrirá con cierta interfaz, es decir. con la API

¿Y cuál es el problema? Usted pregunta Y el hecho es que algunos programadores que desarrollan la API JSON, es decir, la interfaz, se olvidan de JSON-RPC. Y comienza la próxima invención de la bicicleta. El programador de Frontend dice: "Te daré tal json", y el programador de backend responde: "Te devolveré tal json". Y todo estaría bien, pero sería bueno recordar que las personas inteligentes han desarrollado estándares por mucho tiempo, o más bien protocolos de intercambio de datos. Y no algunos súper complejos, sino muy simples: JSON-RPC

Muy probablemente, si no quiere decir que casi todo el mundo sabe e incluso usa estos protocolos. Se escriben un montón de servidores, etc. Pero personalmente, no todo me convenía en los protocolos existentes. Me parecieron no lo suficientemente flexibles y no lógicos en todo. Como habrás adivinado, decidí inventar mi bicicleta json-rpc-1.5

Las principales diferencias con los protocolos existentes son:


  • Parámetro opcional "signo": firma o token
  • En las consultas, en lugar del parámetro param, se usa el parámetro de datos, porque siempre enviamos datos, no solo parámetros.
  • En todas las respuestas, el parámetro "resultado" siempre se devuelve y contiene una descripción del resultado de la consulta "éxito" o "error".
  • Todos los datos en las respuestas vienen en el parámetro "datos"
  • Puede usar alias para nombrar los parámetros de solicitud y respuesta.

Puede parecer. que las diferencias son menores, pero son fundamentalmente importantes.
Por cierto, este protocolo apareció en la práctica, es decir Al crear json api, utilicé el enfoque descrito en este protocolo.

PD:


Habiendo recibido un montón de comentarios negativos y desventajas, decidí volver a verificar, ¿tal vez realmente estoy haciendo algo mal? Naturalmente, todo lo que escribo aquí es mi opinión personal y no impongo nada a nadie. Déjame darte un par de ejemplos:
1. Ejemplo de solicitud de API JSON directa de Yandex :
{ "method": "GetClientInfo", "param": ["agrom"], "locale": "ru", "token": "0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f" } 

También pueden leer sobre tokens: tokens de autorización

2. Ejemplo de Sberbank API Payment desde una aplicación móvil con Apple Pay
No daré una solicitud JSON, es grande, puedes ver el enlace.
Es importante que la solicitud JSON contenga un "pago Tomado". Aquí hay un enlace a los requisitos de generación de tokens de Apple

Es importante comprender que los tokens y las firmas en la API se usan a menudo, naturalmente, junto con otros métodos de protección. Y aquellos que trabajan con varias API lo saben muy bien.

Source: https://habr.com/ru/post/es429524/


All Articles