我正在阅读一本Javascript书,其中讨论了Web服务,但我发现很难理解以下句子是使用REST(Representational State Transfer)的缺点.
使用REST的一个最大缺点是某些浏览器仅支持GET和POST方法,而许多防火墙只允许通过GET和POST方法.
我真的不明白这是怎么一个缺点.英语不是我的第一语言,所以它可能只是我发现它很难.
有人可以详细说明吗?
我是REST的新手,但据我所知,我知道以下URL符合REST原则.资源的布局如下:
/user/<username>/library/book/<id>/tags
^ ^ ^ ^
|---------|-----------|---|- user resource with username as a variable
|-----------|---|- many to one collection (books)
|---|- book id
|- many to one collection (tags)
GET /user/dave/library/book //retrieves a list of books id's
GET /user/dave/library/book/1 //retrieves info on book id=1
GET /user/dave/library/book/1/tags //retrieves tags collection (book id=1)
Run Code Online (Sandbox Code Playgroud)
但是,如何优化此示例API呢?比如说我在我的图书馆里有10K书,我想获取我图书馆里每本书的详细信息.我真的应该/library/book/<id>为每个给出的id 强制进行http调用/library/book吗?或者我应该启用多个id作为参数?/library/book/<id1>,<id2>...并且喜欢一次使用100个id进行批量提取?
REST原则对这种情况有何看法?你有什么看法?
再次感谢.