comparison OrthancFramework/Sources/RestApi/RestApiCallDocumentation.h @ 4401:354ea95b294a

documenting system calls
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 23 Dec 2020 15:13:45 +0100
parents 029366f95217
children ad646ff506d0
comparison
equal deleted inserted replaced
4400:029366f95217 4401:354ea95b294a
58 58
59 HttpMethod method_; 59 HttpMethod method_;
60 std::string tag_; 60 std::string tag_;
61 std::string summary_; 61 std::string summary_;
62 std::string description_; 62 std::string description_;
63 Parameters uriComponents_; 63 Parameters uriArguments_;
64 Parameters httpHeaders_; 64 Parameters httpHeaders_;
65 Parameters getArguments_; 65 Parameters getArguments_;
66 AllowedTypes requestTypes_; 66 AllowedTypes requestTypes_;
67 Parameters requestFields_; // For JSON request 67 Parameters requestFields_; // For JSON request
68 AllowedTypes answerTypes_; 68 AllowedTypes answerTypes_;
69 Parameters answerFields_; // Only if JSON object 69 Parameters answerFields_; // Only if JSON object
70 std::string answerDescription_; 70 std::string answerDescription_;
71 Json::Value sample_; 71 bool hasSampleText_;
72 std::string sampleText_;
73 Json::Value sampleJson_;
72 74
73 public: 75 public:
74 explicit RestApiCallDocumentation(HttpMethod method) : 76 explicit RestApiCallDocumentation(HttpMethod method) :
75 method_(method), 77 method_(method),
76 sample_(Json::nullValue) 78 hasSampleText_(false),
79 sampleJson_(Json::nullValue)
77 { 80 {
78 } 81 }
79 82
80 RestApiCallDocumentation& SetTag(const std::string& tag) 83 RestApiCallDocumentation& SetTag(const std::string& tag)
81 { 84 {
103 const std::string& description); 106 const std::string& description);
104 107
105 RestApiCallDocumentation& AddAnswerType(MimeType type, 108 RestApiCallDocumentation& AddAnswerType(MimeType type,
106 const std::string& description); 109 const std::string& description);
107 110
108 RestApiCallDocumentation& SetUriComponent(const std::string& name, 111 RestApiCallDocumentation& SetUriArgument(const std::string& name,
109 Type type, 112 Type type,
110 const std::string& description); 113 const std::string& description);
114
115 bool HasUriArgument(const std::string& name) const
116 {
117 return (uriArguments_.find(name) != uriArguments_.end());
118 }
111 119
112 RestApiCallDocumentation& SetHttpHeader(const std::string& name, 120 RestApiCallDocumentation& SetHttpHeader(const std::string& name,
113 const std::string& description); 121 const std::string& description);
114 122
115 RestApiCallDocumentation& SetHttpGetArgument(const std::string& name, 123 RestApiCallDocumentation& SetHttpGetArgument(const std::string& name,
118 126
119 RestApiCallDocumentation& SetAnswerField(const std::string& name, 127 RestApiCallDocumentation& SetAnswerField(const std::string& name,
120 Type type, 128 Type type,
121 const std::string& description); 129 const std::string& description);
122 130
123 void SetHttpGetSample(const std::string& url); 131 void SetHttpGetSample(const std::string& url,
132 bool isJson);
124 133
125 void SetSample(const Json::Value& sample) 134 void SetSample(const Json::Value& sample)
126 { 135 {
127 sample_ = sample; 136 sampleJson_ = sample;
128 } 137 }
129 138
130 bool FormatOpenApi(Json::Value& target) const; 139 bool FormatOpenApi(Json::Value& target,
140 const std::set<std::string>& expectedUriArguments) const;
131 }; 141 };
132 } 142 }