gpt4 book ai didi

playframework-2.0 - 具有不同查询参数的 Play Framework 路由

转载 作者:行者123 更新时间:2023-12-04 23:58:32 26 4
gpt4 key购买 nike

我的搜索 Controller 中有两种方法

searchBoundingBox - 进行边界框搜索并需要边界框纬度和经度值。
搜索 - 进行距离搜索(从中心点进行基于距离的搜索)。

我在路由文件中定义了我的两条路由,如下所示。

#Search
#bounding box
GET /search controllers.Search.searchBoundingBox(swLatitude:java.lang.String,swLongitude:java.lang.String, neLatitude:java.lang.String,neLongitude:java.lang.String)

# distance based
GET /search controllers.Search.search(latitude:java.lang.String,longitude:java.lang.String, offset:java.lang.Integer?=0,distance:java.lang.Integer?=50, limit:java.lang.Integer?=10)

但是当我在第二条路线(基于距离)中创建查询时,它没有解决。

任何解决方法!!!(请注意,如果我更改路线的顺序,则边界框搜索失败)

最佳答案

如果您被迫使用查询参数,您可以对两个搜索使用一个操作作为解决方法:

GET     /search   controllers.Search.search

并自己获取查询参数:

斯卡拉:
def search = Action { request =>
val latitude = request.queryString.getOrElse("latitude", Seq()).headOption.getOrElse("default")

java :
public static Result search() {
String latitude = request().queryString().get("latitude")[0];//of course check if param is in map

所以你可以拆分 Action :
if(latitude != null)
searchWithoutBoundingBox()
else
searchBoundingBox()

您会发现这不是一个很好且类型安全的 API,因此最好遵循 Julien 和 biesior 的方法。

关于playframework-2.0 - 具有不同查询参数的 Play Framework 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13545271/

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