2014-10-30 34 views
0

我是REST的新手,我正在通过一些示例。并与URL形成混淆,说我有两个不同的用例。如何形成REST网址?

1)我要显示所有可用的产品(在我的商店)

/app/version1/products - this would give all products 
/app/version1/products/1 - this would give product with id 1 

2)我要显示所有最精彩的产品

现在我的问题是,我的网址外观像

/app/version1/products/topratedProducts 

/app/version1/topratedproducts 

哪个网址更可取?为什么?

感谢

+0

它应该是/应用程序/版本1 /产品/ topratedProducts其中将提供模块和该模块内的服务信息 – vikeng21 2014-10-30 05:44:18

+0

我会使用'/ app/version1/products/toprated'我自己。 – 2014-10-30 05:56:00

回答

0

我更喜欢/应用/ VERSION1 /产品/只要你想获得toprated产品从产品列表topratedProducts,这是一个好习惯。如果你仔细看看产品的路线,所有的都遵循相同的约定,例如你想显示一个产品,其id为1,那么url将是app/version1/prodcuts/1而不是app/version1/1(它不会产生任何感觉)。

REST遵循非常好的对话,我建议你在做脚手架时仔细观察路线。

1
/app/version1/products - this would give all products 
/app/version1/products/1 - this would give product with id 1 

这两个URL看起来不错,并且指的是资源。

当您明确想要在产品列表中使用specifications时,我会建议使用Query params

例子:

/app/version1/products{?type} 

样品网址:

/app/version1/products?type=TOP 
/app/version1/products?type=AVERAGE 

如果你保持后端的类型和支持,以获得不同类型的产品。

针对不同的网址可能会增加消费终点,但理想情况下这仅仅是列出的所有产品的规格。