POST URL将被重定向到特定的API,但一个字符串应该转到单独的URL

时间:2015-08-03 17:36:50

标签: regex web-services rest get restful-url

我希望有两个函数的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_~%\.\-]+'

但我不想这样做。任何人都可以建议在这种情况下最好的设计实践是什么?

1 个答案:

答案 0 :(得分:1)

我会考虑打破一个新的顶级资源来公开你想要的东西。

GET /availableResolutions?laptopId=1234
{
    "resolutions": [
        {
            "laptopId": 1234,
            "resolution": "640x480"
        },
        {
            "laptopId": 1234,
            "resolution": "1280x960"
        },
        ...
    }
}

另一种选择是将可用分辨率集合作为特定笔记本电脑的子资源:

GET /laptops/{laptopId}/availableResolutions

如果没有关于API的更多信息,很难说哪一个更正确。