我想设计rest API,对于具有不同路径变量的同一请求,可以有不同的响应参数。
范例:
URI : /mybook/{key}
方案1:
/mybook/page1
回应:
{
a: "val1",
b: "val2"
c: "val3"
}
场景2:
/mybook/page2
回应:
{
d: "value4",
e: "value5"
f: "value6"
}
场景3:
/mybook/page3
回应:
{
g: "value7",
h: "value8"
i: "value9"
}
是否可以像上面一样创建它?
应该是3个单独的API还是具有所有请求参数的单个API?
最佳答案
如果您将页面视为一种资源并且只有一本书,则可能会将API设计为:
URI : /mybook/pages/{page-no}
因此您的方案将变为:
/mybook/pages/1
/mybook/pages/2
/mybook/pages/3
否则,如果
books
是您的资源,而页面只是一本书的视图,那么您可能会将API设计为:URI : /books/{book-id}?page={page-no}
因此您的方案将变为:
/books/my?page=1
/books/my?page=2
/books/my?page=3