Mercurial > hg > orthanc
diff OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp @ 4622:9086aeb9d9d2 db-changes
RestApiCallDocumentation::SetAnswerHeader() and Toolbox::RemoveSurroundingQuotes()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 16 Apr 2021 10:48:57 +0200 |
parents | d9473bd5ed43 |
children | 7053502fbf97 |
line wrap: on
line diff
--- a/OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp Thu Apr 15 11:29:57 2021 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp Fri Apr 16 10:48:57 2021 +0200 @@ -176,6 +176,21 @@ } + RestApiCallDocumentation& RestApiCallDocumentation::SetAnswerHeader(const std::string& name, + const std::string& description) + { + if (answerHeaders_.find(name) != answerHeaders_.end()) + { + throw OrthancException(ErrorCode_ParameterOutOfRange, "Answer HTTP header \"" + name + "\" is already documented"); + } + else + { + answerHeaders_[name] = Parameter(Type_String, description, false); + return *this; + } + } + + void RestApiCallDocumentation::SetHttpGetSample(const std::string& url, bool isJson) { @@ -430,6 +445,20 @@ target["responses"]["200"]["content"][EnumerationToString(MimeType_PlainText)]["example"] = sampleText_; } + if (!answerHeaders_.empty()) + { + Json::Value answerHeaders = Json::objectValue; + + for (Parameters::const_iterator it = answerHeaders_.begin(); it != answerHeaders_.end(); ++it) + { + Json::Value h = Json::objectValue; + h["description"] = it->second.GetDescription(); + answerHeaders[it->first] = h; + } + + target["responses"]["200"]["headers"] = answerHeaders; + } + Json::Value parameters = Json::arrayValue; for (Parameters::const_iterator it = getArguments_.begin();