¿Qué es la API JSON?
Seguramente muchos en el saber.
JSON : formato de texto para el intercambio de datos
JSONAPI :
interfaz de programación de aplicaciones
APIPalabras clave aquí: interfaz de intercambio de datos.
A, entonces, ¿qué es JSON-RPC?
JSON : ya estamos informados.
RPC - llamada a procedimiento remoto
RPCConcluimos 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-RPCMuy 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.5Las 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ón2. Ejemplo de Sberbank API
Payment desde una aplicación móvil con Apple PayNo 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 AppleEs 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.