В моем проекте Yesod у меня есть следующий маршрут:
/api/hide/thread/#Text/#Int ApiHideThreadR GET
Я хочу запросить его на стороне клиента с помощью javascript:
function hideThreadCompletely(threadId, board) {
$.getJSON("/api/hide/thread/"+board+"/"+threadId, function(data) {
$('#thread-'+threadId).hide();
});
}
Но я не могу использовать @{ApiHideTHreadR}, потому что Yesod требует его аргументов во время компиляции. Какое правильное решение для этого, если я хочу, чтобы URL-адреса API выглядели как api/board/1/1, а не api/board?bid=1&tid=1? Продолжайте использовать указанный вручную URL-адрес, например "/api/hide/thread/"+board+"/"+threadId?