Web API URL的理解

时间:2015-07-13 05:26:14

标签: asp.net asp.net-web-api

我对web api有疑问。我的模型是用户 - *预算 - *项目。我确定下面的方法不适合获取项目

http://localhost/api/items/getitem/userid/budgetid/planFact/inOut/month/

我必须先授权用户,然后只返回他的数据,但我不知道怎么办。

并且在uri中传递大量参数以检索所需数据是正确的吗?

1 个答案:

答案 0 :(得分:1)

假设这是一个简单的API,您应该可以在SSL(https)下使用Basic Auth。在此方案下,您将在标头中的每个请求中传递用户的凭据。这使您可以随时访问用于过滤数据的用户名。如果这是家庭作业,你可以说“我会在现实世界中使用SSL” - 请问你的老师。

就URI设计而言,很难从你的问题中理解这些路径段应该代表什么,但你可能想要避免任何看起来像动词的东西(例如getitem)。考虑支持这些电话:

GET /items/{itemId}
// returns details on a specific item

GET /items?userId={userId}&budgetId={budgetId}
// returns a list of all items matching the query parameters
// may return just ids, limited detail, or as much detail as GET /items/{itemId}

我不清楚planFactinOut应该是什么。如果month是指定特定月份的项目,那么它也应该是一个查询参数。

如果您的URI不包含那么多路径段,那么每个人都会更高兴。