version 5.1.0

PIHTTPServer now can handle path with partially *, ** and {} path arguments
PIHTTP::MessageConst add queryArguments() and pathArguments(). arguments() now union of these args
This commit is contained in:
2025-08-28 19:48:19 +03:00
parent 27f37c9cc1
commit ef8b785ac6
8 changed files with 327 additions and 120 deletions

View File

@@ -59,14 +59,26 @@ PIHTTP::MessageMutable & PIHTTP::MessageMutable::removeHeader(const PIString & h
}
PIHTTP::MessageMutable & PIHTTP::MessageMutable::addArgument(const PIString & arg, const PIString & value) {
m_arguments[arg] = value;
PIHTTP::MessageMutable & PIHTTP::MessageMutable::addQueryArgument(const PIString & arg, const PIString & value) {
m_query_arguments[arg] = value;
return *this;
}
PIHTTP::MessageMutable & PIHTTP::MessageMutable::removeArgument(const PIString & arg) {
m_arguments.remove(arg);
PIHTTP::MessageMutable & PIHTTP::MessageMutable::removeQueryArgument(const PIString & arg) {
m_query_arguments.remove(arg);
return *this;
}
PIHTTP::MessageMutable & PIHTTP::MessageMutable::addPathArgument(const PIString & arg, const PIString & value) {
m_path_arguments[arg] = value;
return *this;
}
PIHTTP::MessageMutable & PIHTTP::MessageMutable::removePathArgument(const PIString & arg) {
m_path_arguments.remove(arg);
return *this;
}

View File

@@ -61,8 +61,16 @@ public:
//! ~russian Возвращает все заголовки сообщения
const PIMap<PIString, PIString> & headers() const { return m_headers; }
//! ~english Gets all message arguments
//! ~russian Возвращает все аргументы сообщения
//! ~english Gets URL query arguments
//! ~russian Возвращает URL query аргументы
const PIMap<PIString, PIString> & queryArguments() const { return m_query_arguments; }
//! ~english Gets URL path arguments
//! ~russian Возвращает URL path аргументы
const PIMap<PIString, PIString> & pathArguments() const { return m_path_arguments; }
//! ~english Gets all message arguments (query + path)
//! ~russian Возвращает все аргументы сообщения (query + path)
const PIMap<PIString, PIString> & arguments() const { return m_arguments; }
protected:
@@ -71,7 +79,7 @@ protected:
PIString m_path;
PIByteArray m_body;
PIMap<PIString, PIString> m_headers;
PIMap<PIString, PIString> m_arguments;
PIMap<PIString, PIString> m_query_arguments, m_path_arguments, m_arguments;
};
@@ -96,7 +104,11 @@ public:
MessageMutable & setBody(PIByteArray b);
const PIMap<PIString, PIString> & headers() const { return m_headers; }
PIMap<PIString, PIString> & arguments() { return m_arguments; }
const PIMap<PIString, PIString> & arguments() const { return m_arguments; }
const PIMap<PIString, PIString> & queryArguments() const { return m_query_arguments; }
const PIMap<PIString, PIString> & pathArguments() const { return m_path_arguments; }
PIMap<PIString, PIString> & headers() { return m_headers; }
//! ~english Adds a header to the message
@@ -107,15 +119,29 @@ public:
//! ~russian Удаляет заголовок из сообщения
MessageMutable & removeHeader(const PIString & header);
PIMap<PIString, PIString> & arguments() { return m_arguments; }
//! ~english Gets reference to URL query arguments
//! ~russian Возвращает ссылку на URL query аргументы
PIMap<PIString, PIString> & queryArguments() { return m_query_arguments; }
//! ~english Adds an argument to the message
//! ~russian Добавляет аргумент к сообщению
MessageMutable & addArgument(const PIString & arg, const PIString & value);
//! ~english Adds an URL query argument to the message
//! ~russian Добавляет URL query аргумент к сообщению
MessageMutable & addQueryArgument(const PIString & arg, const PIString & value);
//! ~english Removes an argument from the message
//! ~russian Удаляет аргумент из сообщения
MessageMutable & removeArgument(const PIString & arg);
//! ~english Removes an URL query argument from the message
//! ~russian Удаляет URL query аргумент из сообщения
MessageMutable & removeQueryArgument(const PIString & arg);
//! ~english Gets reference to URL path arguments
//! ~russian Возвращает ссылку на URL path аргументы
PIMap<PIString, PIString> & pathArguments() { return m_path_arguments; }
//! ~english Adds an URL path argument to the message
//! ~russian Добавляет URL path аргумент к сообщению
MessageMutable & addPathArgument(const PIString & arg, const PIString & value);
//! ~english Removes an URL path argument from the message
//! ~russian Удаляет URL query path из сообщения
MessageMutable & removePathArgument(const PIString & arg);
//! ~english Creates message from HTTP status code
//! ~russian Создает сообщение из HTTP-статус кода