这是我的WCF服务,用户可以在其中找到消息。 简单:
[OperationContract]
[WebGet(UriTemplate = "/GetMessages/{UserGLKNumber}/{UserPassword}/{SessionToken}")]
Messages GetMessages(string SessionToken, string UserPassword, string UserGLKNumber);
我对这一行感到担忧:{UserGLKNumber}/{UserPassword}/{SessionToken}
在收到消息之前,我必须对用户进行身份验证。但是使用GET
方法,我无法发送对象,例如POST
。
是否与REST模式一致?
请澄清我的疑虑。
答案 0 :(得分:4)
已有帖子&关于这一点的问题,我总结了所有这些
POST 动词用于何时创建新资源(在您的案例中为文件),重复操作将在服务器上创建多个资源。如果多次上传同名文件会在服务器上创建多个文件,那么这个动词就有意义了。
当您更新现有资源或创建具有预定义ID的新资源时,将使用PUT 动词。多个操作将重新创建或更新服务器上的相同资源。如果为第二个,第三个...时间上传一个具有相同名称的文件会覆盖以前上传的文件,这个动词会有意义。
POST 。 GET 用于readonly抓取,如数据库选择。
获取:获取条目集合(作为供稿文档)或单个条目(作为输入文档)。
POST :从条目文档创建新条目。
PUT :使用输入文档更新现有条目。
删除:删除条目。
<强>来源:强> Difference between PUT and POST using WCF REST
另一个有用的读物是:
What's the difference between a POST and a PUT HTTP REQUEST?
http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide
答案 1 :(得分:4)
就Restful服务而言......
发布:
1.它可以安全地用于应用而非获得
2.它不配置代理服务器
3. Web服务器限制的大量数据
它没有缓存在浏览器上
5.输入为xml
获取:
1.它不适合在应用中使用而不是获得
2.配置代理服务器
3.使用url编码技术
它缓存在浏览器上
如果你没有宣布任何人,这是违约
6将输入作为字符串输入,返回格式化输出。