Как изобразить вектор вектора карт в Swagger Compojure - PullRequest
0 голосов
/ 29 февраля 2020

У меня есть запрос GET, определенный следующим образом:

(GET "/new_maze" []
        :return {:result StandardMaze}
        :query-params [size :- Long]
        :summary "Generates a new maze and returns it as a JSON as well as an SVG XML string"
        (ok {:result (generate-new-maze-code}))

Как вы можете видеть, я определил тип возврата как схему StandardMaze, которая выглядит следующим образом:

(defn Vector [inner-schema]
  (s/both (s/pred vector? "vector")
               [inner-schema]))

(s/defschema StandardMaze
  {(s/required-key :svg) s/Str (s/required-key :maze) (Vector (Vector {(s/required-key :north) s/Num
                      (s/required-key :east) s/Num
                      (s/required-key :south) s/Num
                      (s/required-key :west) s/Num
                      (s/required-key :visited) s/Num
                      (s/required-key :weight) s/Num}))})

Мой код работает и генерирует лабиринт с заданным типом возврата и проходит проверку, а также выдает следующий ответ:

{
  "result": {
    "svg": "<?xml version=\"1.0\"?>\r\n<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'\r\n          
           'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>\r\n<svg 
            xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"fill-opacity:1; color-rendering:auto; 
            color-interpolation:auto..... etc",
    "maze": [
      [
        {
          "north": 0,
          "east": 0,
          "south": 1,
          "west": 0,
          "visited": 1,
          "weight": 0
        },
        {
          "north": 0,
          "east": 1,
          "south": 1,
          "west": 0,
          "visited": 1,
          "weight": 11
        }, 
        {and so on...}
      ]
    ]
}

Однако в интерфейсе Swagger я не вижу, чтобы класс ответа отображал my: maze ключ. Я совершенно новичок в Clojure и особенно новичок в Ring, Swagger и Compojure.

Вот что я вижу в Swagger UI: enter image description here

Два вопроса:

  1. Какой у меня есть правильный способ проверки вышеуказанного ответа?
  2. Как я могу показать этот класс возврата в Swagger UI?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...