我想设计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

10-04 23:47