根据我对REST原则的理解,URL应该代表单个资源,如用户或产品.您如何处理随机或动态生成的资源?
假设我创建了一个名为api.example.com/integer的资源,它返回一个随机整数.我还会使用GET来检索整数吗?POST,PUT和DELETE在这种情况下意味着什么?
那些代表行为的网址呢?假设我创建了一个名为api.example.com/add的资源,它返回两个数字的总和.如果我想使用此资源,我是否使用GET或POST提交要添加的号码?
并不要求所有资源都支持所有动词.这就是OPTIONS动词用于找出支持的动词.
我会说以下任何一个都是非常自我解释的
GET http://api.example.org/RandomInteger
POST http://api.example.org/RandomNumberMachine
Run Code Online (Sandbox Code Playgroud)
两者都可能有效.请注意,GET请求可能会被缓存.如果确实如此,那么您将无法获得随机结果.
REST背后的一个主要原则是你的网址模型代表名词,而不是动词.所以http://api.example.com/add不是一个理想的网址.
你可以做到
GET http://api.example.org/Summation?Values=2,4
Run Code Online (Sandbox Code Playgroud)
要么
POST http://api.example.org/AddingMachine
Run Code Online (Sandbox Code Playgroud)
使用一些包含要添加的数字的标准格式实体主体.
从表面上看,似乎很迂腐,区分以"添加"结尾的网址和以"总结"结尾的网址.但是,这是一个非常简单的示例,REST约束可以指导您实现对分布式系统具有某些所需特性的设计.
很多年前人们会争论它们之间的区别
apple.bite()
Run Code Online (Sandbox Code Playgroud)
和
bite(apple)
Run Code Online (Sandbox Code Playgroud)
并不重要.我认为现在太多人不会忽视这种区别.
归档时间: |
|
查看次数: |
3924 次 |
最近记录: |