我希望有两个函数的REST API,第一个是获取名称中包含字符串“laptop_re
”的笔记本电脑的名称,另一个是获取笔记本电脑屏幕大小的详细信息我有
我做了一个网址:
(r'/v1/laptops/' + laptop_re + '$', 'GET', getAllLaptops)
,另一个网址是:
(r'/v1/laptops/validscreensizes', 'GET', getAllValidScreenSizes)
这里的问题是,当我尝试运行此API时,它会尝试搜索名为“validscreensizes
”的笔记本电脑,但未点击第二个网址。它将所有内容重定向到第一个URL。
我可以硬编码
laptop_re = r'(?!validscreensizes)[a-zA-z0-9_~%\.\-]+'
但我不想这样做。任何人都可以建议在这种情况下最好的设计实践是什么?
答案 0 :(得分:1)
我会考虑打破一个新的顶级资源来公开你想要的东西。
GET /availableResolutions?laptopId=1234
{
"resolutions": [
{
"laptopId": 1234,
"resolution": "640x480"
},
{
"laptopId": 1234,
"resolution": "1280x960"
},
...
}
}
另一种选择是将可用分辨率集合作为特定笔记本电脑的子资源:
GET /laptops/{laptopId}/availableResolutions
如果没有关于API的更多信息,很难说哪一个更正确。