A API JSON ou JSON RPC correta

O que é a API JSON?


Certamente muitos que sabem.

JSON - Formato de texto para troca de dados JSON
API - Interface de programação de aplicativos API

Palavras-chave aqui: interface de troca de dados.

A, então o que é JSON-RPC?



JSON - já estamos sabendo.

RPC - chamada de procedimento remoto RPC

Concluímos que JSON-RPC é: troca remota de dados.

Certamente essa troca de dados ocorrerá com uma certa interface, ou seja, com a API.

E qual é o problema ?! Você pergunta. E o fato é que alguns programadores que desenvolvem a API JSON, ou seja, a interface, esquecem o JSON-RPC e a próxima invenção da bicicleta começa. O programador do Frontend diz: “Eu lhe darei esse json”, e o programador do Backend responde: “Eu irei lhe devolver esse json”. E tudo ficaria bem, mas seria bom lembrar que pessoas inteligentes desenvolvem padrões há muito tempo, ou melhor, protocolos de troca de dados. E não alguns super complexos, mas muito simples: JSON-RPC

Muito provavelmente, se não para dizer que quase todo mundo conhece e até usa esses protocolos. Muitos servidores são gravados, etc. Mas, pessoalmente, nem tudo me convinha nos protocolos existentes. Eles me pareciam não suficientemente flexíveis e não lógicos em tudo. Como você deve ter adivinhado, decidi inventar minha bicicleta json-rpc-1.5

As principais diferenças dos protocolos existentes são:


  • Parâmetro opcional de "sinal" - Assinatura ou Token
  • Nas consultas, em vez do parâmetro param, o parâmetro data é usado, porque sempre enviamos dados, não apenas parâmetros.
  • Em todas as respostas, o parâmetro "resultado" é sempre retornado e contém uma descrição do resultado da consulta "sucesso" ou "erro".
  • Todos os dados nas respostas vêm no parâmetro "data"
  • Você pode usar aliases para nomear os parâmetros de solicitação e resposta.

Pode parecer. que as diferenças são mínimas, mas são de fundamental importância.
A propósito, esse protocolo apareceu na prática, ou seja, Ao criar json api, usei a abordagem descrita neste protocolo.

PS:


Tendo recebido muitos comentários negativos e desvantagens, decidi verificar novamente, talvez esteja realmente fazendo algo errado? Naturalmente, tudo o que escrevo aqui é minha opinião pessoal e não imponho nada a ninguém. Deixe-me dar alguns exemplos:
1. Exemplo de solicitação direta da API JSON do Yandex :
{ "method": "GetClientInfo", "param": ["agrom"], "locale": "ru", "token": "0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f" } 

Eles também podem ler sobre tokens: tokens de autorização

2. Exemplo do Sberbank API Payment de um aplicativo móvel usando o Apple Pay
Não darei uma solicitação JSON, é grande, você pode ver o link.
É importante que a solicitação JSON contenha um "paymentToken". Aqui está um link para os Requisitos de formação de token da Apple

É importante entender que tokens e assinaturas na API são usados ​​com frequência, naturalmente junto com outros métodos de proteção. E quem trabalha com várias APIs sabe disso muito bem.

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


All Articles