JSON APIとは何ですか?
確かに多くの人が知っています。
JSON - JSONデータ交換のテキスト形式
API - APIアプリケーションプログラミングインターフェース
ここのキーワード:データ交換インターフェース。
A、それではJSON-RPCとは何ですか?
JSON-私たちはすでに知っています。
RPC-リモートプロシージャコールRPC
JSON-RPCはリモートデータ交換と結論付けています。
確かに、このデータ交換は特定のインターフェース、つまり APIを使用します。
そして、問題は何ですか?! お願いします。 そして事実は、JSON API、つまりインターフェースを開発している一部のプログラマーがJSON-RPCを忘れてしまい、自転車の別の発明が始まったということです。 フロントエンドプログラマーは「私はあなたにそのようなjsonを提供します」と言い、バックエンドプログラマーは「私はあなたにそのようなjsonを返します」と答えます。 そして、すべてがうまくいきますが、賢い人々は長い間標準を開発したか、むしろデータ交換プロトコルを持っていることを覚えておくといいでしょう。 超複雑なものではなく、非常に単純なもの: JSON-RPC
ほとんどの場合、ほとんどの人がこれらのプロトコルを知っており、使用しているとさえ言えません。 多数のサーバーが書き込まれます。 しかし、個人的には、既存のプロトコルですべてが私に適しているわけではありません。 彼らは十分に柔軟性がなく、すべてにおいて論理的ではないように見えました。 ご想像のとおり、自転車json-rpc-1.5を発明することにしました
既存のプロトコルとの主な違いは次のとおりです。
- オプションの「sign」パラメーター-署名またはトークン
- クエリでは、paramパラメーターの代わりに、dataパラメーターが使用されます。 パラメータだけでなく、常にデータを送信します。
- すべての回答で、パラメータ「result」が常に返され、クエリ「success」または「error」の結果の説明が含まれます。
- 応答内のすべてのデータは「data」パラメーターに含まれます
- エイリアスを使用して、リクエストとレスポンスのパラメータに名前を付けることができます
思われるかもしれません。 違いは小さいが、基本的に重要であること。
ところで、このプロトコルは実際に登場しています。 JSON APIを作成するとき、このプロトコルで説明されているアプローチを使用しました。
PS:
たくさんの否定的なコメントとマイナスを受け取ったので、もう一度チェックすることにしました。多分本当に間違ったことをしているのでしょうか? 当然、私がここに書いているのは私の個人的な意見であり、誰にも何も課していません。 いくつか例を挙げましょう。
1. YandexダイレクトJSON APIリクエストの例:
{ "method": "GetClientInfo", "param": ["agrom"], "locale": "ru", "token": "0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f" }
トークンについても読むことができます: 認可トークン
2. Apple Payを使用したモバイルアプリケーションからのSberbank API Paymentの例
JSONリクエストは行いません。サイズが大きいため、リンクを確認できます。
JSONリクエストに「paymentToken」が含まれていることが重要です。 Appleのトークン形成要件へのリンクはこちら
APIのトークンと署名は、当然他の保護方法とともに頻繁に使用されることを理解することが重要です。 そして、さまざまなAPIを使用する人はこれを非常によく知っています。