Я хочу создать маршрут на 127.0.0.1:8080/help/routes, в котором перечислены все доступные маршруты (например, страница справки). Как я могу этого добиться? Спасибо
Vapor 4 - Создайте маршрут, в котором перечислены все доступные маршруты.
Ответы (3)
Вы можете сделать это, распечатав содержимое app.routes.all
Отредактируйте свой routes.swift
файл следующим образом
import Vapor
func routes(_ app: Application) throws {
app.get("help", "routes") { req -> String in
app.routes.all.description
}
}
person
imike
schedule
05.07.2020
Вы должны использовать routes.all, как указано в ответе @imike.
Сначала получите массив маршрутов из запроса:
import Vapor
func help(_ req: Request) -> EventLoopFuture<View> {
struct Context: Codable {
var routes: [Route]
}
let routes: [Route] = req.application.routes.all
let context = Context(routes: routes)
return req.view.render("help", context)
}
А затем на странице help.leaf переберите этот маршрут:
<ol>
#for(route in routes):
<li>
#(route.description)
</li>
#endfor
</ol>
Маршрут имеет атрибуты для отображения типа метода, пути и прочего.
person
Juan Valera
schedule
06.07.2020
Кстати (я знаю, что это не совсем ответ на ваш вопрос, но это может быть полезно знать другим), вы можете получить эту информацию напрямую из пара (Vapor 4):
Перейдите в корневой каталог вашего проекта в терминале:
prompt: vapor run routes +-----+------------+ | GET | / | +-----+------------+ | GET | /hello | +-----+------------+ | GET | /about/all | +-----+------------+
person
GeeElle
schedule
02.10.2020
Было бы здорово, если бы вы знали и добавляли в свой ответ прямую команду без
vapor tools
, она должна начинаться с swift run ...
- person imike; 14.10.2020