我正在努力学习创建RESTful Web应用程序。我有些疑惑。
questions/4135336/correct-rest-uri-design
中的SO。假设questions/4135336
是ID,那么4135336
是否足够?然后是什么呢?另一个身份?生成它的任何标准?提前致谢:)
答案 0 :(得分:1)
REST背后的整个想法是,从服务器的角度来看,每个请求都完全独立于任何其他请求。如果有的话,客户负责维护状态。对于给定的请求,服务器将信息传送到满足请求所需的客户端,并且还可以传送允许客户端通过发出更多请求来查找附加信息的信息。考虑到这一点:
答案 1 :(得分:0)
回应第3号:经验法则说你应该使用GET呈现数据并使用POST操作数据。除此之外,创建和删除不需要任何其他内容。
永远不要使用GET操作数据,否则您的链接(somesite.com/users/delete?user=1
)可能会被编入索引,整个数据库将变得混乱。使用GET呈现数据还允许您的用户为特定结果添加书签并提供发送给其他人的链接。
答案 2 :(得分:0)
对于3号,您可以通过使用http方法(除最通用的方法之外)询问我们要实现的目标。我们所取得的是优化潜力。
最通用的方法是POST。 post可以做任何事情,包括检索只读内容。为了优化,我们创建了GET。 GET结果可以缓存,因为每个人都是相同的,并且多个GET请求总是给出相同的结果(对于静态文件,服务器必须告诉缓存它们有效的非静态文件)。
我们可以进一步梳理出可以优化的其他用例,例如,如果要删除特定对象,请使用DELETE方法。如果服务器没有响应,你可以不必担心再次尝试,因为如果对象消失了,你的请求可以被忽略,如果对象第一次没有被删除,它将在第二次尝试时被删除。你不能知道如果删除请求被包装在一个通用信封中,客户端不知道它的语义(例如html表单)。