Clio  develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
APIVersion.hpp
1#pragma once
2
3#include <boost/json.hpp>
4#include <boost/json/object.hpp>
5
6#include <cstdint>
7#include <expected>
8
9namespace rpc {
10
14static constexpr uint32_t kApiVersionDefault = 1u;
15
19static constexpr uint32_t kApiVersionMin = 1u;
20
24static constexpr uint32_t kApiVersionMax = 3u;
25
30public:
31 virtual ~APIVersionParser() = default;
32
39 [[nodiscard]] std::expected<uint32_t, std::string> virtual parse(
40 boost::json::object const& request
41 ) const = 0;
42};
43
44} // namespace rpc
A baseclass for API version helper.
Definition APIVersion.hpp:29
virtual std::expected< uint32_t, std::string > parse(boost::json::object const &request) const =0
Extracts API version information from a JSON object.
This namespace contains all the RPC logic and handlers.
Definition AMMHelpers.cpp:18
static constexpr uint32_t kApiVersionMin
Minimum API version supported by this build.
Definition APIVersion.hpp:19
static constexpr uint32_t kApiVersionDefault
Default API version to use if no version is specified by clients.
Definition APIVersion.hpp:14
static constexpr uint32_t kApiVersionMax
Maximum API version supported by this build.
Definition APIVersion.hpp:24