Add Methods section to README
This commit is contained in:
parent
b2886f8459
commit
9bba555bdc
1 changed files with 53 additions and 2 deletions
55
README.md
55
README.md
|
@ -69,6 +69,11 @@ This project is licensed under GNU Free Documentation License v1.3, see the [LIC
|
|||
* [Establishing a connection](#establishing-a-connection)
|
||||
* [Step 1: DNS Handshake](#step-1-dns-handshake)
|
||||
* [Step 2: Establish Connection](#step-2-establish-connection)
|
||||
* [Methods](#methods)
|
||||
* [Core](#core)
|
||||
* [Public](#public)
|
||||
* [Protected](#protected)
|
||||
* [Internal](#internal)
|
||||
* [Error Codes](#error-codes)
|
||||
* [HTTP Status Codes](#http-status-codes)
|
||||
* [-1xxx: RPC Errors](#-1xxx-rpc-errors)
|
||||
|
@ -355,14 +360,60 @@ example.com. IN TXT "socialbox=socialbox.example.com"
|
|||
```
|
||||
|
||||
For more details on the DNS handshake, refer to the [DNS Handshake](#dns-handshake) section under Specifications.
|
||||
Now we figured out that the Socialbox instance RPC endpoint is found at `https://socialbox.example.com/`.
|
||||
|
||||
1. Client always assumes SSL/TLS is enabled, so the client will always connect to the server using HTTPS.
|
||||
2. CLient always assumes the RPC endpoint URL is the root URL of the server, so all requests will be sent to the root
|
||||
URL of the server.
|
||||
|
||||
### Step 2: Establish Connection
|
||||
|
||||
Now the client figures out that the RPC endpoint for the Socialbox instance hosted under example.com is found at
|
||||
`https://socialbox.example.com/`, the client then establishes a connection to the server using the URL. The client
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
# Methods
|
||||
|
||||
Methods are seperated into three categories that servers could or must implement, the category type dictates this.
|
||||
|
||||
| Category | Server Required | Client Required | Description |
|
||||
|-------------|-----------------|-----------------|-----------------------------------------------------------------------------------------------------------------------|
|
||||
| `core` | Yes | Yes | Core methods are required to be implemented by all servers and clients. |
|
||||
| `public` | Yes | Yes | Public methods are methods that are available to all users without authentication. |
|
||||
| `protected` | Yes | Yes | Protected methods are methods that requires authentication to access them. |
|
||||
| `internal` | No | No | Internal methods are methods reserved for administrative operations to the server if the peer is allowed to use them. |
|
||||
|
||||
To break down these categories in more detail, this section is going to describe their purposes:
|
||||
|
||||
## Core
|
||||
|
||||
Core methods are methods that are required to be implemented by all servers and clients. These methods are essential
|
||||
and may include methods for authentication, registration, and other core functionalities. Core methods are used to
|
||||
establish a connection between the client and server and are necessary for the client to interact with the server.
|
||||
|
||||
|
||||
## Public
|
||||
|
||||
Public methods are methods that are available to all peers without authentication, meaning that any peer can access.
|
||||
|
||||
|
||||
## Protected
|
||||
|
||||
Public methods are the opposite of public methods, these methods require authentication to access them. These methods
|
||||
are used to perform operations that require the peer to be authenticated, such as posting messages, creating communities,
|
||||
and other operations related to the peer's account or peer's interactivity with the server.
|
||||
|
||||
|
||||
## Internal
|
||||
|
||||
Internal methods are optional, restricted functions that enable a peer to perform administrative tasks on the server.
|
||||
These methods require authentication, and it's up to the server to determine if the authenticated peer has the necessary
|
||||
permissions to carry out administrative operations. If the server offers an alternative way for administrators to manage
|
||||
it, these methods should remain entirely optional.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
# Error Codes
|
||||
|
||||
Error codes are globally defined codes that represent the type of error that occurred during a method call. The error
|
||||
|
|
Loading…
Add table
Reference in a new issue