JSON-RPC

Jmnote (토론 | 기여)님의 2024년 7월 9일 (화) 00:27 판

1 개요

JSON-RPC
  • JSON으로 인코딩된 원격 프로시저 호출
  • 원격 프로시저 호출(RPC) 프로토콜의 하나
  • 데이터 교환 형식으로 JSON을 사용하는 경량 프로토콜
  • 매우 간단한 프로토콜(XML-RPC와 매우 흡사함)로서, 소량의 데이터 타입과 명령들만을 정의하고 있다.
  • JSON-RPC는 클라이언트와 서버 간의 통신을 단순화하기 위해 설계되었으며, 다양한 프로그래밍 언어와 플랫폼에서 사용될 수 있다.
  • JSON-RPC는 알림(notification, 서버로 데이터가 전송되고 응답을 요구하지 않음)을 허용하며, 다수의 호출이 서버로 전송되고 순서없이 응답되는 것을 허용한다.

2 특징

  • 단순성: JSON-RPC는 단순한 메시지 형식을 사용하여 요청과 응답을 처리한다. 이로 인해 구현이 용이하다.
  • 무상태성: 각 호출은 독립적이며, 서버는 클라이언트의 상태를 유지하지 않는다.
  • 양방향 통신: 클라이언트가 서버에 요청을 보내고 응답을 받을 수 있으며, 서버가 클라이언트에 알림을 보내는 것도 가능하다.
  • 프로시저 호출: JSON 형식의 메시지를 통해 원격 함수나 메서드를 호출할 수 있다.

3 구조

3.1 요청

{
    "jsonrpc": "2.0",
    "method": "method_name",
    "params": [param1, param2, ...],
    "id": 1
}
→ jsonrpc: 프로토콜 버전, 일반적으로 "2.0"으로 고정된다.
→ method: 호출할 원격 메서드의 이름.
→ params: 메서드에 전달할 매개변수의 배열 또는 객체.
→ id: 요청을 식별하기 위한 고유 ID. 응답과 매칭하는 데 사용된다.

3.2 응답

{
    "jsonrpc": "2.0",
    "result": result_value,
    "id": 1
}
→ jsonrpc: 프로토콜 버전.
→ result: 메서드 호출의 결과.
→ id: 요청의 ID와 동일하여 어떤 요청에 대한 응답인지 식별한다.

3.3 오류 응답

{
    "jsonrpc": "2.0",
    "error": {
        "code": error_code,
        "message": "error_message"
    },
    "id": 1
}
→ jsonrpc: 프로토콜 버전.
→ error: 오류 정보를 담고 있는 객체로, 오류 코드와 메시지를 포함한다.
→ id: 오류가 발생한 요청의 ID

4 같이 보기

5 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}