         (update-in [:swagger-object key] assoc :description (common/render-resource-strings "templates/path-object.tpl" path-object-spec))
         (transform-objects transform-operation-object (select-keys path-object-spec [:get :put :post :delete :options :head :patch :trace]) key :OpenAPI-Operation)
         (transform-objects transform-parameter-object (:parameters path-object-spec) key :OpenAPI-Parameter)
+        (transform-objects transform-server-object (:servers path-object-spec) key :OpenAPI-Server)
         (#(if-let [ref (:$ref path-object-spec)]
             (update-in % [:references] conj {:source-path key :target-path ref})
             %)))))

    ""
    variables-spec))

(defn transform-server-object [data server-object-spec]
  (let [key (:url server-object-spec)
        parent-key "#/servers"
        render-data {:description (:description server-object-spec)
                     :variables (transform-server-variables (:variables server-object-spec))}]

    (-> data
        (update-in [:swagger-object key] assoc :name key)
        (update-in [:swagger-object key] assoc :type :OpenAPI-Server)
        (update-in [:swagger-object key] assoc :parent parent-key)
        (update-in [:swagger-object key] assoc :description (common/render-resource-strings "templates/server-object.tpl" render-data)))))


(defn transform-servers-object [data spec]
  (reduce
    transform-server-object
    data
    (:servers spec)))

(defn create-scaffolding [data]
  (-> data

      data
      (create-scaffolding)
      (transform-objects transform-path-object (:paths spec) "#/paths" :OpenAPI-Path)
      (transform-objects transform-server-object (:servers spec) "#/servers" :OpenAPI-Server)
      (transform-components-object spec))))

(def transformer-definition
