tanszek:oktatas:iss_t:json-rpc
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tanszek:oktatas:iss_t:json-rpc [2026/03/01 17:08] – [JSON-RPC Server (Python + Flask)] knehez | tanszek:oktatas:iss_t:json-rpc [2026/03/01 17:27] (current) – [JSON-RPC Client (Python)] knehez | ||
|---|---|---|---|
| Line 24: | Line 24: | ||
| A JSON-RPC request is a JSON object with the following fields: | A JSON-RPC request is a JSON object with the following fields: | ||
| - | jsonrpc – must be " | + | * **jsonrpc** – must be " |
| - | + | * **method** – name of the remote method | |
| - | method – name of the remote method | + | * **params** – parameters (optional) |
| - | + | * **id** – request identifier (used to match response) | |
| - | params – parameters (optional) | + | |
| - | + | ||
| - | id – request identifier (used to match response) | + | |
| Example request: | Example request: | ||
| Line 81: | Line 78: | ||
| from flask import Flask, request, jsonify | from flask import Flask, request, jsonify | ||
| - | app = Flask(name) | + | app = Flask(__name__) |
| # available RPC methods | # available RPC methods | ||
| def add(a, b): | def add(a, b): | ||
| - | return a + b | + | |
| def subtract(a, b): | def subtract(a, b): | ||
| - | return a - b | + | |
| methods = { | methods = { | ||
| - | " | + | |
| - | " | + | " |
| } | } | ||
| + | |||
| @app.route("/ | @app.route("/ | ||
| def rpc(): | def rpc(): | ||
| - | data = request.get_json() | + | |
| + | |||
| + | if data.get(" | ||
| + | return jsonify( | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ) | ||
| + | |||
| + | method_name = data.get(" | ||
| + | params = data.get(" | ||
| + | request_id = data.get(" | ||
| - | if data.get(" | + | |
| - | return jsonify({ | + | return jsonify( |
| - | " | + | |
| - | " | + | " |
| - | " | + | " |
| - | }) | + | " |
| + | } | ||
| + | | ||
| - | method_name | + | try: |
| - | params = data.get("params", | + | result |
| - | request_id | + | |
| + | { | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ) | ||
| + | except Exception as e: | ||
| + | return jsonify( | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | } | ||
| + | | ||
| - | if method_name not in methods: | ||
| - | return jsonify({ | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }) | ||
| - | try: | + | if __name__ == "__main__": |
| - | result | + | |
| - | return jsonify({ | + | |
| - | | + | |
| - | " | + | |
| - | " | + | |
| - | | + | |
| - | except Exception as e: | + | |
| - | return jsonify({ | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }) | + | |
| - | if name == " | ||
| - | app.run(port=5000) | ||
| </ | </ | ||
| Line 147: | Line 157: | ||
| import requests import json | import requests import json | ||
| - | url = " | + | url = " |
| - | " | + | |
| payload = { | payload = { | ||
| - | " | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| } | } | ||
tanszek/oktatas/iss_t/json-rpc.1772384915.txt.gz · Last modified: 2026/03/01 17:08 by knehez
