假设我有一个JavaScript Web应用程序,它完全使用RESTful API来处理数据。
假设此应用程序具有数据表单,并且假设我正在/ product / 12345上编辑一条记录。构建表单时,我向/ product / 12345发出RESTful请求并获取JSON数据:
{
"id": 12345,
"name": "Some Product",
"active": true,
"sales_user_id": 27
}
因此,我的表单显然可以具有用于选择销售人员的下拉列表。我需要填充此列表。 数据应该从哪里来?最常见的方法是什么?
使其成为/ product / 12345请求响应的一部分有意义吗?
{
"id": 12345,
"name": "Some Product",
"active": true,
"sales_user_id": 27,
"sales_users": [
{"id": 1, "name": "Anna Graham"},
{"id": 2, "name": "Dick Mussell"},
{"id": 3, "name": "Ford Parker"},
{"id": 4, "name": "Ferris Wheeler"},
{"id": 5, "name": "Jo King"}
]
}
创建新记录该怎么办?我的API是否还应通过以下方式响应GET / product / new?
{
"sales_users": [
{"id": 1, "name": "Anna Graham"},
{"id": 2, "name": "Dick Mussell"},
{"id": 3, "name": "Ford Parker"},
{"id": 4, "name": "Ferris Wheeler"},
{"id": 5, "name": "Jo King"}
],
"categories": [
{"id": 1, "name": "Category 1"},
{"id": 2, "name": "Category 2"},
{"id": 3, "name": "Category 3"},
{"id": 4, "name": "Category 4"},
{"id": 5, "name": "Category 5"}
],
"etc": [ ... ]
}
请不要使用GET请求来创建内容。您的端点应该是/ product 而不是/ product / new。要创建新产品,您应该向该端点发送一个PUT请求。
—
KeremBaydoğan'16
这没有创建任何东西。这纯粹是对现有数据的请求,或者是新的尚未保存的记录的模板。
—
乍得约翰逊
哦,对不起,现在我明白你的意思了。无论哪种方式,产品端点都不负责为产品创建表单下拉菜单提供模板产品或值列表。正如@Dan所说,只需创建单独的终结点并使用缓存头,这样您的浏览器就可以缓存下拉值以提高性能。
—
KeremBaydoğan17年