gpt4 book ai didi

php - 在 GET 请求 RESTful API 中作为查询参数的 ID 数组

转载 作者:行者123 更新时间:2023-12-04 18:10:53 24 4
gpt4 key购买 nike

过去几周我一直在用 PHP(Laravel 框架)构建一个 RESTful API。此外,我正在构建一个使用此 API 的 JavaScript 前端 (jQuery/Backbone)。

在这个 API 中有一些 GET 请求需要大量的查询参数,其中大部分是 ID 数组。我的结构是这样的:

/api/cars?colors[]=1&colors[]=3&makes[]=6&makes[]=2&sold=false

(例如 ID=1 的颜色是红色,ID=6 的品牌是奥迪等)

在 PHP 中,从 $_GET['colors'] 解析数组是开箱即用的。另外,当我使用

$.ajax({
url: "someurl",
method: "GET",
data: {
cars: theCarsArray,
makes: theMakesArray,
sold: false
}
});

似乎也能完美地工作(数组在 URL 中发送,如上所述)。我想知道:这是在 REST 接口(interface)中发送 ID 数组的公认方法吗?这种方法有什么缺点吗?有哪些替代方案?

最佳答案

根据我的经验,这是将数组值传递给 PHP 脚本的公认方式。由于您使用的是 PHP,因此应该利用已有的东西。也就是说,当网页以其他编程语言/框架实现时,数组值通常不会以这种方式传递。在某些情况下,您会看到:

/api/cars?colors=1&colors=3&makes=6&makes=2&sold=false

在这些语言/框架中,它们通常提供以标量或数组形式访问请求参数的方法。所以你公开了你的实现。如果你想隐藏你正在使用 PHP 的事实,你可以将其更改为上面的内容,但是你必须添加额外的功能来解析你的请求参数。就像我说的那样,因为您是在 PHP 中实现它,所以我认为利用它提供的开箱即用的功能没有任何问题。

我唯一的建议是将您的 url 端点更改为 /api/cars/,因为您要返回一组汽车(大概),这似乎是更 RESTful 的方法。

无论如何,只是我的两分钱。希望对您有所帮助。

关于php - 在 GET 请求 RESTful API 中作为查询参数的 ID 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12962977/

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