![]() |
MySQL 8.0.43
Source Code Documentation
|
#include <chrono>#include <map>#include <string>#include <rapidjson/document.h>#include "mysql/harness/utility/string.h"#include "mysqlrouter/http_request.h"Go to the source code of this file.
Functions | |
| void | send_rfc7807_error (HttpRequest &req, HttpStatusCode::key_type status_code, const std::map< std::string, std::string > &fields) |
| send a JsonProblem HTTP response. More... | |
| bool | ensure_http_method (HttpRequest &req, HttpMethod::Bitset allowed_methods) |
| ensure HTTP method is allowed. More... | |
| bool | ensure_auth (HttpRequest &req, const std::string require_realm) |
| ensure request is authenticated. More... | |
| bool | ensure_no_params (HttpRequest &req) |
| ensure request has no parameters. More... | |
| void | send_rfc7807_not_found_error (HttpRequest &req) |
| send a JsonProblem "Not Found" error. More... | |
| bool | ensure_modified_since (HttpRequest &req, time_t last_modified) |
| ensure resource has modified since client received it. More... | |
| void | send_json_document (HttpRequest &req, HttpStatusCode::key_type status_code, const rapidjson::Document &json_doc) |
| send json document as HTTP response. More... | |
| template<class Encoding , class AllocatorType > | |
| rapidjson::GenericValue< Encoding, AllocatorType > | json_value_from_timepoint (std::chrono::time_point< std::chrono::system_clock > tp, AllocatorType &allocator) |
| format a timepoint as json-value (date-time format). More... | |
| bool ensure_auth | ( | HttpRequest & | req, |
| const std::string | require_realm | ||
| ) |
ensure request is authenticated.
sends HTTP-response with status 401 if authentication was not successful.
| true | if request is authenticaticated |
| false | if authentication was not successful and HTTP response has been sent |
| bool ensure_http_method | ( | HttpRequest & | req, |
| HttpMethod::Bitset | allowed_methods | ||
| ) |
ensure HTTP method is allowed.
sends HTTP-response with status 405 if method is not allowed and sets Allow HTTP header.
| true | if HTTP method is allowed |
| false | if HTTP is not allowed and HTTP response has been sent |
| bool ensure_modified_since | ( | HttpRequest & | req, |
| time_t | last_modified | ||
| ) |
ensure resource has modified since client received it.
sends HTTP-response with status 304 if client has a newer version that
| true | if resource is modified since client received it. |
| false | if client has the same resource and HTTP response has been sent |
| bool ensure_no_params | ( | HttpRequest & | req | ) |
ensure request has no parameters.
sends HTTP-response with status 400 if request contained a query string.
| true | if request did not contain a query-string |
| false | if request contained a query-string and HTTP response has been sent |
| rapidjson::GenericValue< Encoding, AllocatorType > json_value_from_timepoint | ( | std::chrono::time_point< std::chrono::system_clock > | tp, |
| AllocatorType & | allocator | ||
| ) |
format a timepoint as json-value (date-time format).
| void send_json_document | ( | HttpRequest & | req, |
| HttpStatusCode::key_type | status_code, | ||
| const rapidjson::Document & | json_doc | ||
| ) |
send json document as HTTP response.
Content-Type must be sent before the function is called.
| req | HttpRequest object to send error-msg |
| status_code | HTTP Status code of the problem message |
| json_doc | json document to send as response |
| void send_rfc7807_error | ( | HttpRequest & | req, |
| HttpStatusCode::key_type | status_code, | ||
| const std::map< std::string, std::string > & | fields | ||
| ) |
send a JsonProblem HTTP response.
RFC 7807 defines application/problem+json:
| req | HttpRequest object to send error-msg |
| status_code | HTTP Status code of the problem message |
| fields | fields on the problem message |
| void send_rfc7807_not_found_error | ( | HttpRequest & | req | ) |
send a JsonProblem "Not Found" error.
| req | HttpRequest object to send error-msg |