选择一个简单的表格person
:
CREATE TABLE person
(
id bigint,
name nvarchar(128),
age int
)
您可以在REST界面中表示:
GET /person
GET /person/5
PUT /person
POST /person/5
PATCH /person/5
DELETE /person/5
此接口需要2个参数:
{
name: 'Joe',
age: 16,
}
然后,您可以定义一个期望这两个参数的API,甚至可以选择age
。
但是,假设您想在客户端定义一个模型,希望用这个person
表做一些奇特的事情,例如拉动所有青少年,你最好如何代表这个?
我想我可以做一些事情,只支持GET
,然后随意地要求符合查询需求的不同参数:
GET /person/teenager
但是,我不知道这会适当地满足所有用例。例如,我相信REST网址应该只有名词,我不知道如何将这样的东西放到名词形式中:
GET /person/by-age
任何想法/参考/建议?
答案 0 :(得分:2)
限制人员列出结果的最常用方法是使用查询参数。您可以以对API有用的任何方式定义查询参数。一个例子可能只是GET /person?age=13..20
才能获得青少年。另一个例子可能是GET /person/?filter=age>=13,age<20
。