gpt4 book ai didi

Grails urlmappings,可以一个前缀urlmappings吗?

转载 作者:行者123 更新时间:2023-12-02 13:46:05 24 4
gpt4 key购买 nike

例如,假设我在 webapp 上有一个 API,并且我希望在 API 中使用与 webapp 的其余部分相同的 Controller 和操作。

在我的 urlmappings 文件中,我有

"/api/$version/$apiKey/$controller/$acion/$id?"

我也有这样的映射:
"/blog/$year/$month/$day/$action" {
controller = 'blog'
}

现在的问题是,我能否以某种方式将 api urlmapping 加到博客 urlmapping 的前缀,以便我可以从 $year、$month、$day 变量中受益?以这样一种方式,对以下 url 的 GET 请求将是有效的:
GET /api/0.1/bs23mk4m2n4k/blog/2001/01/05/list

还是我被迫执行以下请求?
GET /api/0.1/bs23mk4m2n4k/blog/list?year=2004&month=01&day=05

需要 urlmappings GURU 或 groovy 运行时 urlmappings 操作向导的帮助:)

我想要一个可以重用现有非 api urmapping 的解决方案,而不必使用 api 路径作为前缀重新声明它们。

最佳答案

您可以让 ApiController 去除 api 参数,然后重定向到博客 Controller 。例如:

"/api/$version/$apiKey/$rest**" {
controller:'api'
action:'default'
}


import org.codehaus.groovy.grails.web.util.WebUtils
class ApiController {
def grailsUrlMappingsHolder

def default = {
// validate apiKey, etc
WebUtils.forwardRequestForUrlMappingInfo(request, response, grailsUrlMappingsHolder.match("/${params.rest}"))
}
}

API Controller 可以访问 version 和 apiKey 参数,并将其余参数传递给博客 Controller 的 UrlMapping 处理。

关于Grails urlmappings,可以一个前缀urlmappings吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5977912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com