Merge #12700: Document RPC method aliasing
4c317d89e
Document RPC method aliasing (Russell Yanofsky)
Pull request description:
Suggested by @Sjors in https://github.com/bitcoin/bitcoin/pull/11536#issuecomment-372820660
Tree-SHA512: 7bf16238e41b6c6c078e9103d8eac2ac76739a2c16b4f964be49bfde1f20f31a1fb30badf1faaa6ddc301a74f0d785d19567069b50de78c502144479143cb38c
This commit is contained in:
commit
ebdf84c960
2 changed files with 20 additions and 0 deletions
|
@ -710,3 +710,14 @@ A few guidelines for introducing and reviewing new RPC interfaces:
|
|||
client may be aware of prior to entering a wallet RPC call, we must block
|
||||
until the wallet is caught up to the chainstate as of the RPC call's entry.
|
||||
This also makes the API much easier for RPC clients to reason about.
|
||||
|
||||
- Be aware of RPC method aliases and generally avoid registering the same
|
||||
callback function pointer for different RPCs.
|
||||
|
||||
- *Rationale*: RPC methods registered with the same function pointer will be
|
||||
considered aliases and only the first method name will show up in the
|
||||
`help` rpc command list.
|
||||
|
||||
- *Exception*: Using RPC method aliases may be appropriate in cases where a
|
||||
new RPC is replacing a deprecated RPC, to avoid both RPCs confusingly
|
||||
showing up in the command list.
|
||||
|
|
|
@ -165,8 +165,17 @@ public:
|
|||
|
||||
/**
|
||||
* Appends a CRPCCommand to the dispatch table.
|
||||
*
|
||||
* Returns false if RPC server is already running (dump concurrency protection).
|
||||
*
|
||||
* Commands cannot be overwritten (returns false).
|
||||
*
|
||||
* Commands with different method names but the same callback function will
|
||||
* be considered aliases, and only the first registered method name will
|
||||
* show up in the help text command listing. Aliased commands do not have
|
||||
* to have the same behavior. Server and client code can distinguish
|
||||
* between calls based on method name, and aliased commands can also
|
||||
* register different names, types, and numbers of parameters.
|
||||
*/
|
||||
bool appendCommand(const std::string& name, const CRPCCommand* pcmd);
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue