当我使用asp.net web API设计一个restful API时,我必须记住我的客户端处理代表状态机的url设计吗?客户端UI路由与服务器端路由有何区别
为了更清楚地说明我也在谈论URL中的遏制关系。
例如:
我有一个可以有很多Schooylear实体用户实体。 我有一个Schooylear实体,它可以有多个期间实体。
这会导致三个Web API控制器。 UserController,SchoolyearController,PeriodController。现在我问我自己,我应该像暴露途径:
api/users/1/schoolyears/2013-2014/periods/2014-01-01
的问题是,现在我应该如何映射的HTTP路线???
像上面一个其实我也从来没有见过类似的路线,而路线:
api/users/1
api/schoolyears/2013-2014
api/periods/2014-01-01
但与关系包含上述路线将是非常有益的在地址栏,用户如果看到...
或应该是一个安静的API不提供代表状态机的url设计?你看我很困惑客户端的责任开始或服务器端...
“你不希望在情况下,你有,... “是的,我想成为这种情况!当我正确理解msfanboy时,我需要mysite.com/#/users/1/schoolyears/2013-2014/periods/2014-01-01这对服务器路由没有影响,因为hashbang是客户端路由。再次,我需要这样的网址,用户如何能够将链接加入书签并再次快速加载?该链接需要整个信息链,否则无法装载2014年1月1日的期间。 – Elisabeth
@Elisa我的假设(也许这是不正确的)是这两个URL都会返回完全相同的表示。如果是这样,你不想有两个返回相同表示的URI。你可以让一个URI返回一个重定向到另一个。这将允许这两个URI并不会中断缓存。 –
@Elisa我还没有弄清楚URI片段的相关性与你的问题。 –