SwaggerEntity.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. package org.ssssssss.magicapi.swagger;
  2. import java.util.*;
  3. public class SwaggerEntity {
  4. private String swagger = "2.0";
  5. private String host;
  6. private String basePath;
  7. private Info info;
  8. private Set<Tag> tags = new HashSet<>();
  9. private Map<String,String> definitions = Collections.emptyMap();
  10. private Map<String, Map<String, Path>> paths = new HashMap<>();
  11. public Info getInfo() {
  12. return info;
  13. }
  14. public void setInfo(Info info) {
  15. this.info = info;
  16. }
  17. public void addPath(String path, String method, Path pathInfo) {
  18. Map<String, Path> map = paths.get(path);
  19. if(map == null){
  20. map = new HashMap<>();
  21. paths.put(path, map);
  22. }
  23. map.put(method.toLowerCase(), pathInfo);
  24. }
  25. public void addTag(String name, String description) {
  26. this.tags.add(new Tag(name, description));
  27. }
  28. public String getHost() {
  29. return host;
  30. }
  31. public void setHost(String host) {
  32. this.host = host;
  33. }
  34. public String getSwagger() {
  35. return swagger;
  36. }
  37. public void setSwagger(String swagger) {
  38. this.swagger = swagger;
  39. }
  40. public String getBasePath() {
  41. return basePath;
  42. }
  43. public void setBasePath(String basePath) {
  44. this.basePath = basePath;
  45. }
  46. public Map<String,String> getDefinitions() {
  47. return definitions;
  48. }
  49. public Set<Tag> getTags() {
  50. return tags;
  51. }
  52. public Map<String, Map<String, Path>> getPaths() {
  53. return paths;
  54. }
  55. public static class Info{
  56. private String description;
  57. private String version;
  58. private String title;
  59. private License license;
  60. public Info(String description, String version, String title, License license) {
  61. this.description = description;
  62. this.version = version;
  63. this.title = title;
  64. this.license = license;
  65. }
  66. public String getDescription() {
  67. return description;
  68. }
  69. public void setDescription(String description) {
  70. this.description = description;
  71. }
  72. public String getVersion() {
  73. return version;
  74. }
  75. public void setVersion(String version) {
  76. this.version = version;
  77. }
  78. public String getTitle() {
  79. return title;
  80. }
  81. public void setTitle(String title) {
  82. this.title = title;
  83. }
  84. public License getLicense() {
  85. return license;
  86. }
  87. public void setLicense(License license) {
  88. this.license = license;
  89. }
  90. }
  91. public static class Path {
  92. private List<String> tags = new ArrayList<>();
  93. private String summary;
  94. private List<String> produces = new ArrayList<>();
  95. private List<String> consumes = new ArrayList<>();
  96. private List<Parameter> parameters = new ArrayList<>();
  97. private Map<String, Object> responses = new HashMap<>();
  98. public void addProduce(String produce) {
  99. this.produces.add(produce);
  100. }
  101. public void addConsume(String consume) {
  102. this.consumes.add(consume);
  103. }
  104. public void addParameter(Parameter parameter) {
  105. this.parameters.add(parameter);
  106. }
  107. public void addResponse(String status, Object object) {
  108. Map<String, Object> response = new HashMap<>();
  109. response.put("description","OK");
  110. response.put("schema",new HashMap<>());
  111. response.put("examples",object);
  112. this.responses.put(status, response);
  113. }
  114. public List<String> getTags() {
  115. return tags;
  116. }
  117. public void addTag(String tag){
  118. this.tags.add(tag);
  119. }
  120. public void setTags(List<String> tags) {
  121. this.tags = tags;
  122. }
  123. public String getSummary() {
  124. return summary;
  125. }
  126. public void setSummary(String summary) {
  127. this.summary = summary;
  128. }
  129. public List<String> getProduces() {
  130. return produces;
  131. }
  132. public void setProduces(List<String> produces) {
  133. this.produces = produces;
  134. }
  135. public List<String> getConsumes() {
  136. return consumes;
  137. }
  138. public void setConsumes(List<String> consumes) {
  139. this.consumes = consumes;
  140. }
  141. public List<Parameter> getParameters() {
  142. return parameters;
  143. }
  144. public void setParameters(List<Parameter> parameters) {
  145. this.parameters = parameters;
  146. }
  147. public Map<String, Object> getResponses() {
  148. return responses;
  149. }
  150. public void setResponses(Map<String, Object> responses) {
  151. this.responses = responses;
  152. }
  153. }
  154. public static class Parameter {
  155. private String name;
  156. private String in;
  157. private boolean required = false;
  158. private String type;
  159. private Map<String,Object> schema;
  160. private Object examples;
  161. public Parameter(String name, String in, String type, Object examples) {
  162. this.name = name;
  163. this.in = in;
  164. this.schema = new HashMap<>();
  165. this.schema.put("type",type);
  166. this.examples = examples;
  167. }
  168. public String getName() {
  169. return name;
  170. }
  171. public void setName(String name) {
  172. this.name = name;
  173. }
  174. public String getIn() {
  175. return in;
  176. }
  177. public void setIn(String in) {
  178. this.in = in;
  179. }
  180. public boolean isRequired() {
  181. return required;
  182. }
  183. public void setRequired(boolean required) {
  184. this.required = required;
  185. }
  186. public String getType() {
  187. return type;
  188. }
  189. public void setType(String type) {
  190. this.type = type;
  191. }
  192. public Object getSchema() {
  193. return schema;
  194. }
  195. public void setSchema(Map<String, Object> schema) {
  196. this.schema = schema;
  197. }
  198. public Object getExamples() {
  199. return examples;
  200. }
  201. public void setExamples(Object examples) {
  202. this.examples = examples;
  203. }
  204. }
  205. public static class Tag {
  206. private String name;
  207. private String description;
  208. public Tag(String name, String description) {
  209. this.name = name;
  210. this.description = description;
  211. }
  212. public String getName() {
  213. return name;
  214. }
  215. public void setName(String name) {
  216. this.name = name;
  217. }
  218. public String getDescription() {
  219. return description;
  220. }
  221. public void setDescription(String description) {
  222. this.description = description;
  223. }
  224. @Override
  225. public boolean equals(Object o) {
  226. if (this == o) return true;
  227. if (o == null || getClass() != o.getClass()) return false;
  228. Tag tag = (Tag) o;
  229. return Objects.equals(name, tag.name);
  230. }
  231. @Override
  232. public int hashCode() {
  233. return Objects.hash(name);
  234. }
  235. }
  236. public static class License {
  237. private String name;
  238. private String url;
  239. public License(String name, String url) {
  240. this.name = name;
  241. this.url = url;
  242. }
  243. public String getName() {
  244. return name;
  245. }
  246. public void setName(String name) {
  247. this.name = name;
  248. }
  249. public String getUrl() {
  250. return url;
  251. }
  252. public void setUrl(String url) {
  253. this.url = url;
  254. }
  255. }
  256. }